summaryrefslogtreecommitdiffstats
path: root/vendor/proptest
diff options
context:
space:
mode:
authorDaniel Baumann <daniel.baumann@progress-linux.org>2024-06-07 05:48:48 +0000
committerDaniel Baumann <daniel.baumann@progress-linux.org>2024-06-07 05:48:48 +0000
commitef24de24a82fe681581cc130f342363c47c0969a (patch)
tree0d494f7e1a38b95c92426f58fe6eaa877303a86c /vendor/proptest
parentReleasing progress-linux version 1.74.1+dfsg1-1~progress7.99u1. (diff)
downloadrustc-ef24de24a82fe681581cc130f342363c47c0969a.tar.xz
rustc-ef24de24a82fe681581cc130f342363c47c0969a.zip
Merging upstream version 1.75.0+dfsg1.
Signed-off-by: Daniel Baumann <daniel.baumann@progress-linux.org>
Diffstat (limited to 'vendor/proptest')
-rw-r--r--vendor/proptest/.cargo-checksum.json2
-rw-r--r--vendor/proptest/CHANGELOG.md37
-rw-r--r--vendor/proptest/Cargo.lock209
-rw-r--r--vendor/proptest/Cargo.toml29
-rw-r--r--vendor/proptest/README.md5
-rw-r--r--vendor/proptest/src/arbitrary/_alloc/char.rs2
-rw-r--r--vendor/proptest/src/arbitrary/_std/path.rs112
-rw-r--r--vendor/proptest/src/bits.rs17
-rw-r--r--vendor/proptest/src/lib.rs7
-rw-r--r--vendor/proptest/src/num.rs15
-rw-r--r--vendor/proptest/src/path.rs55
-rw-r--r--vendor/proptest/src/sample.rs8
-rw-r--r--vendor/proptest/src/string.rs210
-rw-r--r--vendor/proptest/src/sugar.rs52
-rw-r--r--vendor/proptest/src/test_runner/config.rs3
-rw-r--r--vendor/proptest/src/test_runner/failure_persistence/file.rs19
-rw-r--r--vendor/proptest/src/test_runner/rng.rs19
-rw-r--r--vendor/proptest/src/test_runner/runner.rs22
18 files changed, 621 insertions, 202 deletions
diff --git a/vendor/proptest/.cargo-checksum.json b/vendor/proptest/.cargo-checksum.json
index 08d5d8e4f..2ac682243 100644
--- a/vendor/proptest/.cargo-checksum.json
+++ b/vendor/proptest/.cargo-checksum.json
@@ -1 +1 @@
-{"files":{"CHANGELOG.md":"7723c4eb327261d2dd8b7b273e90a67b5144cf3ea44f3fc25e0c36ce55054bc9","Cargo.lock":"3cf7f4fd75ebc7332453be0ce9898546eae54329ead013ab8dffc1cdad85ec48","Cargo.toml":"149a9dd8517abf124d8dc54beff8afb4315bfe798e2683813e3dd9f31e5618fe","LICENSE-APACHE":"a60eea817514531668d7e00765731449fe14d059d3249e0bc93b36de45f759f2","LICENSE-MIT":"d8e0806926ce9f0a5030c382ecc0ffdf6de6fbea5c69a458435fd443fa7a5b92","README.md":"866e4fe1252e36bdf5bd5d0317d2d147764c15d7ae1cc6866209cb0b7e11c3c4","examples/config-defaults.rs":"312ee1c5f98ee858d0401a092e0a87b4c3231095f87a5dd4e6ba3288600ef596","examples/dateparser_v1.rs":"5f91b684ce2d46d865f1f1c0e642efb351e4469067104213871d0fcb1b5a369a","examples/dateparser_v2.rs":"d91d93a7ae5fd7e18c535847bcb3e783f1bc461e9797c8f0b21bc0cec5dd812c","examples/fib.rs":"4740e33bbfb420648a6e49468c178083a7f4c04c8c7512653fed3fff3332edb0","examples/tutorial-simplify-play.rs":"2d048a86334589389b26416fc27f6154b20e182e3766125ffabaeb491dd9295f","examples/tutorial-strategy-play.rs":"3242ba366e52e6d8c66155c9545af3b8863589979fbc6623dd97f532c8fb5285","proptest-regressions/arbitrary/_std/env.txt":"3450a5867e58f6a6c4e5d50e4dce30283e2bf6d5389f48bfa1d535f1269c6516","proptest-regressions/test_runner/rng.txt":"978d8519044a3c6056fa3c99edfd1ff9dee184ff1e74a2592830d54be3f22e81","src/arbitrary/_alloc/alloc.rs":"bbbaf75f67a055ec9ffbe025e991d9138f2dcd462b69165e53d57964edbc053d","src/arbitrary/_alloc/borrow.rs":"0a3026aedc686a76eab6fef37673b13d87701c2a5c2d763615fd3283f89c552f","src/arbitrary/_alloc/boxed.rs":"54b0279c9e5acbff5b4a47f96d75ecf39b5209153b5b07f28437e8a2175a8ad9","src/arbitrary/_alloc/char.rs":"cf37be08bce70b9c38bd24036157097692c9b92d540b104fdd99c8ae751399a9","src/arbitrary/_alloc/collections.rs":"57322f54bdcb89c63a93eefe9f72830ea3d87c87fd51c00a6e151f7292a1c39d","src/arbitrary/_alloc/hash.rs":"266966af450e184e3461cdd09b0052c2c9cbaed0bf7534981cef95a239dacaff","src/arbitrary/_alloc/mod.rs":"b49db65bd88506b2b35cbed65c3da3d15c140214342d7d2bef6c180a22e503d4","src/arbitrary/_alloc/ops.rs":"6aa1c3a18bb8eb256a37e8db6e4398e368c9113b7018ecdc833d88ea8cf33b2c","src/arbitrary/_alloc/rc.rs":"a83680953b444454655cf15f3078838c4c1af4376f9b8482f3bb0e0c01825d92","src/arbitrary/_alloc/str.rs":"19b3d9739894f4f8fd51df8aa0dc5b856ae9283ce46b246887cf082ccfdb68e9","src/arbitrary/_alloc/sync.rs":"c5f8ca04acbb07102993acb6c1b718343201f1f4c44f59f679b853d00f059340","src/arbitrary/_core/ascii.rs":"f408be8715725de9b276eab3dd06c8cbe3320b16718bf632ded1a39fc45e05cf","src/arbitrary/_core/cell.rs":"c90aacfca33293fdd1d346590ac08766de8e84ced2248d4e67345a6f241fa965","src/arbitrary/_core/cmp.rs":"ea0bb9b99d3064f8749a744aaa40380eea12b267bd23cae6057bcc83bf57e921","src/arbitrary/_core/convert.rs":"830e889cf24e64d68d81706e45a33aef93450ee8430062817e1d288eb2e8b318","src/arbitrary/_core/fmt.rs":"e09f679e873b25f1d42e05daa189c802b48d639d83635c79d380a481afde27ce","src/arbitrary/_core/iter.rs":"721dbe2f741c1b6375604e22e9322cca03f31a4fb470d7b33f84e29687a97028","src/arbitrary/_core/marker.rs":"ba1368ff79549a84293b61652af0bd531941f5eacc9845b753edf221585b4430","src/arbitrary/_core/mem.rs":"23754b24a09d5ebfd5465f2b6d5674c3739d4da347075b067ed722d431ac1f70","src/arbitrary/_core/mod.rs":"06460f0d6b94f9e416df2def04f802a3f83de648de06dae384ddfc81e84f8d4a","src/arbitrary/_core/non_zero.rs":"67091b5fdbf6624a0c8ce40cf6574e26539d620af413ed006eb76085061dbb3f","src/arbitrary/_core/num.rs":"0753a5ae6bf902036b5f6c063043bef1da940fc2ba5603235b900fa54b521cd1","src/arbitrary/_core/option.rs":"7a292712a67bbecac0c766854c8dffc5c8c0cf4cbbd85c43e5233029d4210769","src/arbitrary/_core/result.rs":"4fa76363a4ccb888eeccb1bb4b32a3d314c1c3596137829f0ec886263cb5702f","src/arbitrary/_std/env.rs":"625c594ec669d8199920badc3b76e2f43ec5383a4a0b007083772fb3b35cb138","src/arbitrary/_std/ffi.rs":"cfe50e4a027fa3c7e6ff7a744bbc7b91b2de1f837c1dfba31cdbf90f44407478","src/arbitrary/_std/fs.rs":"1a6d6ded0212686e7b136dd36052ba34d954079ca7e3fc1a6d6e631476ecc2f1","src/arbitrary/_std/io.rs":"344610d93aea9557bfe8d2ca1993e384465aea40d6b0816c4267593aa953fd2a","src/arbitrary/_std/mod.rs":"73845b1e2e31d6fe820143d427f48d9955f67f28ecd5344d9ca0c74928f6ddb7","src/arbitrary/_std/net.rs":"a6249487a7589385373ceb963f830037abdf465d5932c9ec806d85c218c3e16b","src/arbitrary/_std/panic.rs":"20380439a655610d5f5011cc6c16c7e7acfbb7d314a219746fd174f46ea1320f","src/arbitrary/_std/path.rs":"af8fd327ff6bc73686a7bf796694294c418607141dea991c063c4422da4ccbc2","src/arbitrary/_std/string.rs":"cd3031befb486a3410b01c70b4c58871358170aad35e86cd7d8709993f2bd9bc","src/arbitrary/_std/sync.rs":"c493847b5f5a3e10966beb423416c1b0dfd8c989c7a8cec99f53789b3aa03834","src/arbitrary/_std/thread.rs":"f004f74ea78b502b7e4b41919160d40b0d1820652ba664ec3a32a0bbaa5ad965","src/arbitrary/_std/time.rs":"ed622cdf756a1a6f7770c99b7b45cfbf7402db31f4dcf8473c3227ed8b8b54bc","src/arbitrary/arrays.rs":"0e78dde28fdad71327a2e08ec1d79c09526ef327f4abb59f6fea7073cf5f4679","src/arbitrary/functor.rs":"85aa44e04e1e6bef5beaa683180a9b4fe5dd670586d87be026ecf96e2d39b90a","src/arbitrary/macros.rs":"a3fe075811c1e711cb8ffef0557604f70df5e0a75d4110ed2f8516c4e324a24b","src/arbitrary/mod.rs":"6e1ccaa5c389411dc5a4501da785f42f4439bdd28295be573507346daeef6a00","src/arbitrary/primitives.rs":"59d9a899853559d3eff1954e6d4c84e8d6999e0a8798fc9b152ea10accccb760","src/arbitrary/sample.rs":"45280f054eb04f7142a7afcc565d77534a78e626a76ad056569251a05d61f831","src/arbitrary/traits.rs":"bf3ce2f950ebbf359b592c5e39f8fbca2302cb2f45b93b185ccc1d81308a7d5b","src/arbitrary/tuples.rs":"5b92e767a74f11b25a262d6e6f9e54d13ca9e389ea42f2b78631b069a854c116","src/array.rs":"9b34119b364682ab383e2ed56210e95073f6d1af3d90e3064c9b527a37d30998","src/bits.rs":"4eeee066d9aa0c4c1921991a61e56338a5db4a4e8deffb0c5746e856569a0ed6","src/bool.rs":"3e91477b0a5c29539380fdc1c065bfe5829099e3cfa7e50b1f8cf7857a01918b","src/char.rs":"c72bcd375f8e3d17ff1766baed1680cdd912902c697a04035c1e72ef35d2588b","src/collection.rs":"9dbb3530383dc8ce566cbc2cdc0198e442ac1c19368d074dce9eba523d137b84","src/file-preamble":"a4a75492b40e467fa8d1bcf050e685ea4de56c3a76095d756488c554d76a4986","src/lib.rs":"d6ac1e34347bb76e3d6cee472023fc461331928806cae35ea13f118ee7ad4816","src/macros.rs":"4353f46ed0a68d20bca16ee261e375dd398b3415759710ac60bdcd281401e2d2","src/num.rs":"4fc9bb305f3a026f8907beae86c693240eeed07fc1d8d01c7a25f2f19ef36d71","src/num/float_samplers.rs":"894b5cff2fa57c3081b3f09421c74520347dda8b3d2fccf7ca4978fb0076e3f9","src/option.rs":"d817de4d217368ac402a803e35db57c3c2c0da2d863ca4058b579cf4175763ac","src/prelude.rs":"5f20305aa03047afa44da2fd220d689bcf6935e45edc0d9a9ee0497b603917a6","src/product_frunk.rs":"e7c2afc66c8e045105c4828e36ffcd17e6cb9b12a40ef99c7631854dab6d03c0","src/product_tuple.rs":"bdd2b8dcf05bc46eb6f3f331fa66b2a85106f1591046d1c3dc622a9aac3dd9bc","src/regex-contrib/README.md":"add72e2a9a34d4e67d647613970cbf5affc1d987ebe90858a487f3ee6e4032ce","src/regex-contrib/crates_regex.rs":"7812e91c25a2aad48ba024bcbeb8b922ffc1cfa3113a33615885d72d8a2cae64","src/result.rs":"51042be31c9a2a63f46c99f027b7d21ae17331c3c1250735870f0cc5b50e7cdb","src/sample.rs":"e7064f622263fae7da23c16e55cd1d847ad0e46a718402bc0ec3e6e513cb1ae6","src/std_facade.rs":"fec624264d5a849e99131fde58ff0ac8cc99e4e2c9672f9c031bb7b9c7d3e95c","src/strategy/filter.rs":"06b59ed9186d5d1459e9b3d73c1a8d873079af45c3faba1feacbd1c296108cec","src/strategy/filter_map.rs":"2f8f3cc5409077036e1b3f91c5ec40332001ac0fde354e87f679d289a4f1e9d6","src/strategy/flatten.rs":"2e933564191e05d619f0c1669000b1ec2af74bed6719856edbf8c21cb10deceb","src/strategy/fuse.rs":"c9f1c388150686d6f89e37c5ec95c2ac2991708c1d11427ad0c55de9ad96f155","src/strategy/just.rs":"a1b34f10d44c46b93bf399f8aae443a50f96a97d6150691444acffe26956dd86","src/strategy/lazy.rs":"4822adec0f3b24b865242c2b25799e7bca45963314092557494efa53cafd6e87","src/strategy/map.rs":"4dbc65fdb2c3d40c9e944d0234d984ba018899d342ef3f561013a0548849b09e","src/strategy/mod.rs":"20762d1ad18ef5f5a86fd2d2eb7fe286930a297ea448afffc7f3a22c3c5ef2a3","src/strategy/recursive.rs":"7922681623105fb5d1cc08e889081fb793be778195a6d104dffeed11a4da6d4c","src/strategy/shuffle.rs":"9eacb43e73178b8c1422442a6dfae18c1a0613056a34311f0411266d5c5aab39","src/strategy/statics.rs":"36978b39a6990892916f6d0d6b5fa3de02f84747ea7540c4c548863f4561eae2","src/strategy/traits.rs":"e7ddf04aab1a4c50b996e1eb67348f786e707089f6178707317a535eaf573a72","src/strategy/unions.rs":"5cd758fe6ce5aa11dae90b61795df69322b6a3ec8d60183893425aae92869959","src/string.rs":"aa3214c1fc3d9824bf84397384989348015840458e5491ac3fe04071591d7119","src/sugar.rs":"8e59dbc4804d2ec23362041c54b34fd60dffc3350d28a4b8f28ee64f867c09ea","src/test_runner/config.rs":"96e0ea2609efb9556a16f7a637ba568b8c85ff5a32003acb49179cbb3e881626","src/test_runner/errors.rs":"3256836e74da7b52168c173f396d03aea913dce581ac7d0065fa9621021bb755","src/test_runner/failure_persistence/file.rs":"87690cd6cc66cad86eed69ea957061a6a3ca11b807d9a4a9fef5fdad59350080","src/test_runner/failure_persistence/map.rs":"b00bc6cc1650cc9fb432d201c19bf0ba1f5b6255b8c7f1e067a184531da345f9","src/test_runner/failure_persistence/mod.rs":"42393d664c6171ae712cc534adbb1c4448a9196fac4acd87aa55f70d276ce911","src/test_runner/failure_persistence/noop.rs":"fada8a1f66ade1983d5cfd839da2726ee72b1b1a39927b484590be65cacd2ab8","src/test_runner/mod.rs":"738e90f1556b9ce98924da0699dc5ada59a44816aed3ca5069099d52e8b70c36","src/test_runner/reason.rs":"f3b62a8175fd3b91e216b0f607a2b5a36808a77642eeac207774e193894d7bbb","src/test_runner/replay.rs":"de8c3310af00ab27920416386d0e65870a32d6ef8f2eed1cfb8b0f8079ba7fcc","src/test_runner/result_cache.rs":"da685cb01657d247b2d49bb9101e2b9cef3f2c51f1754735eef62170d92896a1","src/test_runner/rng.rs":"863b784b3812c6bb68e4cab27baea8a92fbc3becac09bdbe356f35f761a8f2b8","src/test_runner/runner.rs":"3df3b056e0d0476a8ee44418577824941778f32d561864e6184c57b03451ed69","src/tuple.rs":"378da5204c9e14277dc5b1af29b49e1feaf508f67dec1a0493614df47034868b","test-persistence-location/README.md":"83c3b124b9203f711b8a7ecfb126db96d66bbe73831288c9ee1fb030acfe44a9","test-persistence-location/run-tests.bat":"ba04781900565fd1cec389dd0f9a1c67dd2d0e23b06e63de2b53365e3985c78f","test-persistence-location/run-tests.sh":"03f05cf0409baabf39b0aca33d659e6385306eaccf036fe47e0155a97dd64afb"},"package":"4e35c06b98bf36aba164cc17cb25f7e232f5c4aeea73baa14b8a9f0d92dbfa65"} \ No newline at end of file
+{"files":{"CHANGELOG.md":"017d709fc8f8d6a73bf07ffba74da7d30fbb84e1cdbbcd695c394f2b26b79684","Cargo.lock":"ec98a80dd5c216b48f11f10a8fc724ffde41917cc67fd944a2d6df042e92c3e8","Cargo.toml":"fb80a8dd4f4cf57829b8789bc74e13a543aff180d1137fa5b4060f1282b4dff2","LICENSE-APACHE":"a60eea817514531668d7e00765731449fe14d059d3249e0bc93b36de45f759f2","LICENSE-MIT":"d8e0806926ce9f0a5030c382ecc0ffdf6de6fbea5c69a458435fd443fa7a5b92","README.md":"509ec231fe75b094d75aab3e3be44058e91f5b07c4823f124d05c5b36d5238fc","examples/config-defaults.rs":"312ee1c5f98ee858d0401a092e0a87b4c3231095f87a5dd4e6ba3288600ef596","examples/dateparser_v1.rs":"5f91b684ce2d46d865f1f1c0e642efb351e4469067104213871d0fcb1b5a369a","examples/dateparser_v2.rs":"d91d93a7ae5fd7e18c535847bcb3e783f1bc461e9797c8f0b21bc0cec5dd812c","examples/fib.rs":"4740e33bbfb420648a6e49468c178083a7f4c04c8c7512653fed3fff3332edb0","examples/tutorial-simplify-play.rs":"2d048a86334589389b26416fc27f6154b20e182e3766125ffabaeb491dd9295f","examples/tutorial-strategy-play.rs":"3242ba366e52e6d8c66155c9545af3b8863589979fbc6623dd97f532c8fb5285","proptest-regressions/arbitrary/_std/env.txt":"3450a5867e58f6a6c4e5d50e4dce30283e2bf6d5389f48bfa1d535f1269c6516","proptest-regressions/test_runner/rng.txt":"978d8519044a3c6056fa3c99edfd1ff9dee184ff1e74a2592830d54be3f22e81","src/arbitrary/_alloc/alloc.rs":"bbbaf75f67a055ec9ffbe025e991d9138f2dcd462b69165e53d57964edbc053d","src/arbitrary/_alloc/borrow.rs":"0a3026aedc686a76eab6fef37673b13d87701c2a5c2d763615fd3283f89c552f","src/arbitrary/_alloc/boxed.rs":"54b0279c9e5acbff5b4a47f96d75ecf39b5209153b5b07f28437e8a2175a8ad9","src/arbitrary/_alloc/char.rs":"d2aa48c5db502958fc1ed1e172fc4759c0e747dd626b04816882c711631df817","src/arbitrary/_alloc/collections.rs":"57322f54bdcb89c63a93eefe9f72830ea3d87c87fd51c00a6e151f7292a1c39d","src/arbitrary/_alloc/hash.rs":"266966af450e184e3461cdd09b0052c2c9cbaed0bf7534981cef95a239dacaff","src/arbitrary/_alloc/mod.rs":"b49db65bd88506b2b35cbed65c3da3d15c140214342d7d2bef6c180a22e503d4","src/arbitrary/_alloc/ops.rs":"6aa1c3a18bb8eb256a37e8db6e4398e368c9113b7018ecdc833d88ea8cf33b2c","src/arbitrary/_alloc/rc.rs":"a83680953b444454655cf15f3078838c4c1af4376f9b8482f3bb0e0c01825d92","src/arbitrary/_alloc/str.rs":"19b3d9739894f4f8fd51df8aa0dc5b856ae9283ce46b246887cf082ccfdb68e9","src/arbitrary/_alloc/sync.rs":"c5f8ca04acbb07102993acb6c1b718343201f1f4c44f59f679b853d00f059340","src/arbitrary/_core/ascii.rs":"f408be8715725de9b276eab3dd06c8cbe3320b16718bf632ded1a39fc45e05cf","src/arbitrary/_core/cell.rs":"c90aacfca33293fdd1d346590ac08766de8e84ced2248d4e67345a6f241fa965","src/arbitrary/_core/cmp.rs":"ea0bb9b99d3064f8749a744aaa40380eea12b267bd23cae6057bcc83bf57e921","src/arbitrary/_core/convert.rs":"830e889cf24e64d68d81706e45a33aef93450ee8430062817e1d288eb2e8b318","src/arbitrary/_core/fmt.rs":"e09f679e873b25f1d42e05daa189c802b48d639d83635c79d380a481afde27ce","src/arbitrary/_core/iter.rs":"721dbe2f741c1b6375604e22e9322cca03f31a4fb470d7b33f84e29687a97028","src/arbitrary/_core/marker.rs":"ba1368ff79549a84293b61652af0bd531941f5eacc9845b753edf221585b4430","src/arbitrary/_core/mem.rs":"23754b24a09d5ebfd5465f2b6d5674c3739d4da347075b067ed722d431ac1f70","src/arbitrary/_core/mod.rs":"06460f0d6b94f9e416df2def04f802a3f83de648de06dae384ddfc81e84f8d4a","src/arbitrary/_core/non_zero.rs":"67091b5fdbf6624a0c8ce40cf6574e26539d620af413ed006eb76085061dbb3f","src/arbitrary/_core/num.rs":"0753a5ae6bf902036b5f6c063043bef1da940fc2ba5603235b900fa54b521cd1","src/arbitrary/_core/option.rs":"7a292712a67bbecac0c766854c8dffc5c8c0cf4cbbd85c43e5233029d4210769","src/arbitrary/_core/result.rs":"4fa76363a4ccb888eeccb1bb4b32a3d314c1c3596137829f0ec886263cb5702f","src/arbitrary/_std/env.rs":"625c594ec669d8199920badc3b76e2f43ec5383a4a0b007083772fb3b35cb138","src/arbitrary/_std/ffi.rs":"cfe50e4a027fa3c7e6ff7a744bbc7b91b2de1f837c1dfba31cdbf90f44407478","src/arbitrary/_std/fs.rs":"1a6d6ded0212686e7b136dd36052ba34d954079ca7e3fc1a6d6e631476ecc2f1","src/arbitrary/_std/io.rs":"344610d93aea9557bfe8d2ca1993e384465aea40d6b0816c4267593aa953fd2a","src/arbitrary/_std/mod.rs":"73845b1e2e31d6fe820143d427f48d9955f67f28ecd5344d9ca0c74928f6ddb7","src/arbitrary/_std/net.rs":"a6249487a7589385373ceb963f830037abdf465d5932c9ec806d85c218c3e16b","src/arbitrary/_std/panic.rs":"20380439a655610d5f5011cc6c16c7e7acfbb7d314a219746fd174f46ea1320f","src/arbitrary/_std/path.rs":"d6bec5f4a3899f93e1c6b8a5b1e45be95f3dd8e5ab375c5cfa31a9c2d0746b73","src/arbitrary/_std/string.rs":"cd3031befb486a3410b01c70b4c58871358170aad35e86cd7d8709993f2bd9bc","src/arbitrary/_std/sync.rs":"c493847b5f5a3e10966beb423416c1b0dfd8c989c7a8cec99f53789b3aa03834","src/arbitrary/_std/thread.rs":"f004f74ea78b502b7e4b41919160d40b0d1820652ba664ec3a32a0bbaa5ad965","src/arbitrary/_std/time.rs":"ed622cdf756a1a6f7770c99b7b45cfbf7402db31f4dcf8473c3227ed8b8b54bc","src/arbitrary/arrays.rs":"0e78dde28fdad71327a2e08ec1d79c09526ef327f4abb59f6fea7073cf5f4679","src/arbitrary/functor.rs":"85aa44e04e1e6bef5beaa683180a9b4fe5dd670586d87be026ecf96e2d39b90a","src/arbitrary/macros.rs":"a3fe075811c1e711cb8ffef0557604f70df5e0a75d4110ed2f8516c4e324a24b","src/arbitrary/mod.rs":"6e1ccaa5c389411dc5a4501da785f42f4439bdd28295be573507346daeef6a00","src/arbitrary/primitives.rs":"59d9a899853559d3eff1954e6d4c84e8d6999e0a8798fc9b152ea10accccb760","src/arbitrary/sample.rs":"45280f054eb04f7142a7afcc565d77534a78e626a76ad056569251a05d61f831","src/arbitrary/traits.rs":"bf3ce2f950ebbf359b592c5e39f8fbca2302cb2f45b93b185ccc1d81308a7d5b","src/arbitrary/tuples.rs":"5b92e767a74f11b25a262d6e6f9e54d13ca9e389ea42f2b78631b069a854c116","src/array.rs":"9b34119b364682ab383e2ed56210e95073f6d1af3d90e3064c9b527a37d30998","src/bits.rs":"939c6eccc6d97ed241dff44c8aeb747e1d51989aeb9d5fb0635f9458cd47c405","src/bool.rs":"3e91477b0a5c29539380fdc1c065bfe5829099e3cfa7e50b1f8cf7857a01918b","src/char.rs":"c72bcd375f8e3d17ff1766baed1680cdd912902c697a04035c1e72ef35d2588b","src/collection.rs":"9dbb3530383dc8ce566cbc2cdc0198e442ac1c19368d074dce9eba523d137b84","src/file-preamble":"a4a75492b40e467fa8d1bcf050e685ea4de56c3a76095d756488c554d76a4986","src/lib.rs":"7b60ea458965fb029bc2ba2cc2fc5be3b951ff937f5b089e4e1451004643b60a","src/macros.rs":"4353f46ed0a68d20bca16ee261e375dd398b3415759710ac60bdcd281401e2d2","src/num.rs":"01c6eb456fa376e3d805a64d09af32daf4d0c835fede3c669e8f1aae2b7c38b1","src/num/float_samplers.rs":"894b5cff2fa57c3081b3f09421c74520347dda8b3d2fccf7ca4978fb0076e3f9","src/option.rs":"d817de4d217368ac402a803e35db57c3c2c0da2d863ca4058b579cf4175763ac","src/path.rs":"f8714f139cfc48ac20bc67db1ddcb2284be400753317d1b220310218f189568d","src/prelude.rs":"5f20305aa03047afa44da2fd220d689bcf6935e45edc0d9a9ee0497b603917a6","src/product_frunk.rs":"e7c2afc66c8e045105c4828e36ffcd17e6cb9b12a40ef99c7631854dab6d03c0","src/product_tuple.rs":"bdd2b8dcf05bc46eb6f3f331fa66b2a85106f1591046d1c3dc622a9aac3dd9bc","src/regex-contrib/README.md":"add72e2a9a34d4e67d647613970cbf5affc1d987ebe90858a487f3ee6e4032ce","src/regex-contrib/crates_regex.rs":"7812e91c25a2aad48ba024bcbeb8b922ffc1cfa3113a33615885d72d8a2cae64","src/result.rs":"51042be31c9a2a63f46c99f027b7d21ae17331c3c1250735870f0cc5b50e7cdb","src/sample.rs":"c93f1f9c977c0fb0ffa9ff1158ef40abc320e4433eea8178efbf46f93bfc1e56","src/std_facade.rs":"fec624264d5a849e99131fde58ff0ac8cc99e4e2c9672f9c031bb7b9c7d3e95c","src/strategy/filter.rs":"06b59ed9186d5d1459e9b3d73c1a8d873079af45c3faba1feacbd1c296108cec","src/strategy/filter_map.rs":"2f8f3cc5409077036e1b3f91c5ec40332001ac0fde354e87f679d289a4f1e9d6","src/strategy/flatten.rs":"2e933564191e05d619f0c1669000b1ec2af74bed6719856edbf8c21cb10deceb","src/strategy/fuse.rs":"c9f1c388150686d6f89e37c5ec95c2ac2991708c1d11427ad0c55de9ad96f155","src/strategy/just.rs":"a1b34f10d44c46b93bf399f8aae443a50f96a97d6150691444acffe26956dd86","src/strategy/lazy.rs":"4822adec0f3b24b865242c2b25799e7bca45963314092557494efa53cafd6e87","src/strategy/map.rs":"4dbc65fdb2c3d40c9e944d0234d984ba018899d342ef3f561013a0548849b09e","src/strategy/mod.rs":"20762d1ad18ef5f5a86fd2d2eb7fe286930a297ea448afffc7f3a22c3c5ef2a3","src/strategy/recursive.rs":"7922681623105fb5d1cc08e889081fb793be778195a6d104dffeed11a4da6d4c","src/strategy/shuffle.rs":"9eacb43e73178b8c1422442a6dfae18c1a0613056a34311f0411266d5c5aab39","src/strategy/statics.rs":"36978b39a6990892916f6d0d6b5fa3de02f84747ea7540c4c548863f4561eae2","src/strategy/traits.rs":"e7ddf04aab1a4c50b996e1eb67348f786e707089f6178707317a535eaf573a72","src/strategy/unions.rs":"5cd758fe6ce5aa11dae90b61795df69322b6a3ec8d60183893425aae92869959","src/string.rs":"9df2ec63c1fa74fb0db56ffe028bd6e3605570a0640a2c4b77ca6b738ebfb128","src/sugar.rs":"7572878423c001f8fb9968ae0e7a89df9dde0028cd50a7cecf9b697e009e6e54","src/test_runner/config.rs":"dcef57dea06a07e84b95812fa1c752a36939742e47916377ef2aed4b4a53abf7","src/test_runner/errors.rs":"3256836e74da7b52168c173f396d03aea913dce581ac7d0065fa9621021bb755","src/test_runner/failure_persistence/file.rs":"a3d3bafc0efd09955889dbef8fc2933187e87fcb293a8818c4da8a618e74a75f","src/test_runner/failure_persistence/map.rs":"b00bc6cc1650cc9fb432d201c19bf0ba1f5b6255b8c7f1e067a184531da345f9","src/test_runner/failure_persistence/mod.rs":"42393d664c6171ae712cc534adbb1c4448a9196fac4acd87aa55f70d276ce911","src/test_runner/failure_persistence/noop.rs":"fada8a1f66ade1983d5cfd839da2726ee72b1b1a39927b484590be65cacd2ab8","src/test_runner/mod.rs":"738e90f1556b9ce98924da0699dc5ada59a44816aed3ca5069099d52e8b70c36","src/test_runner/reason.rs":"f3b62a8175fd3b91e216b0f607a2b5a36808a77642eeac207774e193894d7bbb","src/test_runner/replay.rs":"de8c3310af00ab27920416386d0e65870a32d6ef8f2eed1cfb8b0f8079ba7fcc","src/test_runner/result_cache.rs":"da685cb01657d247b2d49bb9101e2b9cef3f2c51f1754735eef62170d92896a1","src/test_runner/rng.rs":"4dbe8376acccb656f9481986ed4ee151602e216287e51608b67031f84948721e","src/test_runner/runner.rs":"2b8148bf2ec1e7e61206bdf551f69a56ab08ea4c70e0fb3b8ec0be12bfefbad4","src/tuple.rs":"378da5204c9e14277dc5b1af29b49e1feaf508f67dec1a0493614df47034868b","test-persistence-location/README.md":"83c3b124b9203f711b8a7ecfb126db96d66bbe73831288c9ee1fb030acfe44a9","test-persistence-location/run-tests.bat":"ba04781900565fd1cec389dd0f9a1c67dd2d0e23b06e63de2b53365e3985c78f","test-persistence-location/run-tests.sh":"03f05cf0409baabf39b0aca33d659e6385306eaccf036fe47e0155a97dd64afb"},"package":"7c003ac8c77cb07bb74f5f198bce836a689bcd5a42574612bf14d17bfd08c20e"} \ No newline at end of file
diff --git a/vendor/proptest/CHANGELOG.md b/vendor/proptest/CHANGELOG.md
index 5ee6cc266..0dca677d3 100644
--- a/vendor/proptest/CHANGELOG.md
+++ b/vendor/proptest/CHANGELOG.md
@@ -1,5 +1,38 @@
## Unreleased
+## 1.3.1
+
+## Other Notes
+
+- `bit-set` updated from 0.5.0 to 0.5.2 to ensure minimum compatible version with bit-vec 0.6
+
+## 1.3.0
+
+### Breaking Changes
+
+- The minimum supported Rust version has been increased to 1.64.0.
+
+### New Features
+
+- Adds Arbitrary impl for PathBuf
+- Permit use of (?-u) in byte-regex strategies, allowing non-utf-8 bytes to be generated
+
+### Book
+
+- Various small fixes -- typos, formatting
+- Removal of custom theme
+- Add book page for Tips and Best Practices
+
+### Other Notes
+
+- `regex-syntax` version 0.7 is now used.
+- Print a seed to stderr for a failed test even when a regressions file is already present.
+- Fixed a performance issue with `VarBitSet::saturated` that can slow down `VecStrategy`
+- Remove use of rust feature `core_intrinsics`
+- Remove no longer needed "break-dead-code" feature
+- Disable `clippy::arc_with_non_send_sync`
+- Remove dependency on `byteorder`
+
## 1.2.0
### Breaking Changes
@@ -97,7 +130,7 @@
### New Features
-- Enabling the `hardware-rng` optional depndency (disabled by default) allows
+- Enabling the `hardware-rng` optional dependency (disabled by default) allows
obtaining non-deterministic random seeds even in `no_std` environments
provided the architecture is x86 or AMD64.
@@ -173,7 +206,7 @@
## 0.9.3
-This is a minor release to correct some packaging errors. The licence files are
+This is a minor release to correct some packaging errors. The license files are
now included in the files published to crates.io, and some unneeded files are
now excluded.
diff --git a/vendor/proptest/Cargo.lock b/vendor/proptest/Cargo.lock
index f62736d08..451a86757 100644
--- a/vendor/proptest/Cargo.lock
+++ b/vendor/proptest/Cargo.lock
@@ -4,9 +4,9 @@ version = 3
[[package]]
name = "aho-corasick"
-version = "0.7.19"
+version = "1.0.2"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "b4f55bd91a0978cbfd91c457a164bab8b4001c833b7f323132c0a4e1922dd44e"
+checksum = "43f6cb1bf222025340178f382c426f13757b2960e89779dfcb319c32542a5a41"
dependencies = [
"memchr",
]
@@ -34,9 +34,9 @@ checksum = "349f9b6a179ed607305526ca489b34ad0a41aed5f7980fa90eb03160b69598fb"
[[package]]
name = "bit_field"
-version = "0.10.1"
+version = "0.10.2"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "dcb6dd1c2376d2e096796e234a70e17e94cc2d5d54ff8ce42b28cef1d0d359a4"
+checksum = "dc827186963e592360843fb5ba4b973e145841266c1357f7180c43526f2e5b61"
[[package]]
name = "bitflags"
@@ -45,10 +45,16 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "bef38d45163c2f1dde094a7dfd33ccf595c92905c8f8f4fdc18d06fb1037718a"
[[package]]
-name = "byteorder"
-version = "1.4.3"
+name = "bitflags"
+version = "2.4.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "b4682ae6287fcf752ecaabbfcc7b6f9b72aa33933dc23a554d853aea8eea8635"
+
+[[package]]
+name = "cc"
+version = "1.0.79"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "14c189c53d098945499cdfa7ecc63567cf3886b3332b312a5b4585d8d3a6a610"
+checksum = "50d30906286121d95be3d479533b458f87493b30a4b5f79a607db8f5d11aa91f"
[[package]]
name = "cfg-if"
@@ -57,10 +63,31 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "baf1de4339761588bc0619e3cbc0120ee582ebb74b53b4efbf79117bd2da40fd"
[[package]]
+name = "errno"
+version = "0.3.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "4bcfec3a70f97c962c307b2d2c56e358cf1d00b558d74262b5f929ee8cc7e73a"
+dependencies = [
+ "errno-dragonfly",
+ "libc",
+ "windows-sys",
+]
+
+[[package]]
+name = "errno-dragonfly"
+version = "0.1.2"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "aa68f1b12764fab894d2755d2518754e71b4fd80ecfb822714a1206c2aab39bf"
+dependencies = [
+ "cc",
+ "libc",
+]
+
+[[package]]
name = "fastrand"
-version = "1.8.0"
+version = "1.9.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "a7a407cfaa3385c4ae6b23e84623d48c2798d06e3e6a1878f7f59f17b3f86499"
+checksum = "e51093e27b0797c359783294ca4f0a911c270184cb10f85783b118614a1501be"
dependencies = [
"instant",
]
@@ -73,9 +100,9 @@ checksum = "3f9eec918d3f24069decb9af1554cad7c880e2da24a9afd88aca000531ab82c1"
[[package]]
name = "getrandom"
-version = "0.2.8"
+version = "0.2.10"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "c05aeb6a22b8f62540c194aac980f2115af067bfe15a0734d7277a768d396b31"
+checksum = "be4136b2a15dd319360be1c07d9933517ccf0be8f16bf62a3bee4f0d618df427"
dependencies = [
"cfg-if",
"libc",
@@ -83,6 +110,12 @@ dependencies = [
]
[[package]]
+name = "hermit-abi"
+version = "0.3.2"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "443144c8cdadd93ebf52ddb4056d257f5b52c04d3c804e657d19eb73fc33668b"
+
+[[package]]
name = "instant"
version = "0.1.12"
source = "registry+https://github.com/rust-lang/crates.io-index"
@@ -92,6 +125,17 @@ dependencies = [
]
[[package]]
+name = "io-lifetimes"
+version = "1.0.11"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "eae7b9aee968036d54dce06cebaefd919e4472e753296daccd6d344e3e2df0c2"
+dependencies = [
+ "hermit-abi",
+ "libc",
+ "windows-sys",
+]
+
+[[package]]
name = "lazy_static"
version = "1.4.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
@@ -99,15 +143,21 @@ checksum = "e2abad23fbc42b3700f2f279844dc832adb2b2eb069b2df918f455c4e18cc646"
[[package]]
name = "libc"
-version = "0.2.137"
+version = "0.2.147"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "fc7fcc620a3bff7cdd7a365be3376c97191aeaccc2a603e600951e452615bf89"
+checksum = "b4668fb0ea861c1df094127ac5f1da3409a82116a4ba74fca2e58ef927159bb3"
[[package]]
name = "libm"
-version = "0.2.6"
+version = "0.2.7"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "348108ab3fba42ec82ff6e9564fc4ca0247bdccdc68dd8af9764bbc79c3c8ffb"
+checksum = "f7012b1bbb0719e1097c47611d3898568c546d597c2e74d66f6087edd5233ff4"
+
+[[package]]
+name = "linux-raw-sys"
+version = "0.3.8"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "ef53942eb7bf7ff43a617b3e2c1c4a5ecf5944a7c1bc12d7ee39bbb15e5c1519"
[[package]]
name = "memchr"
@@ -133,11 +183,11 @@ checksum = "5b40af805b3121feab8a3c29f04d8ad262fa8e0561883e7653e024ae4479e6de"
[[package]]
name = "proptest"
-version = "1.2.0"
+version = "1.3.1"
dependencies = [
"bit-set",
- "bitflags",
- "byteorder",
+ "bit-vec",
+ "bitflags 2.4.0",
"lazy_static",
"num-traits",
"rand",
@@ -198,27 +248,39 @@ dependencies = [
[[package]]
name = "raw-cpuid"
-version = "10.6.0"
+version = "10.7.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "a6823ea29436221176fe662da99998ad3b4db2c7f31e7b6f5fe43adccd6320bb"
+checksum = "6c297679cb867470fa8c9f67dbba74a78d78e3e98d7cf2b08d6d71540f797332"
dependencies = [
- "bitflags",
+ "bitflags 1.3.2",
]
[[package]]
name = "redox_syscall"
-version = "0.2.16"
+version = "0.3.5"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "fb5a58c1855b4b6819d59012155603f0b22ad30cad752600aadfcb695265519a"
+checksum = "567664f262709473930a4bf9e51bf2ebf3348f2e748ccc50dea20646858f8f29"
dependencies = [
- "bitflags",
+ "bitflags 1.3.2",
]
[[package]]
name = "regex"
-version = "1.7.0"
+version = "1.9.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "b2eae68fc220f7cf2532e4494aded17545fce192d59cd996e0fe7887f4ceb575"
+dependencies = [
+ "aho-corasick",
+ "memchr",
+ "regex-automata",
+ "regex-syntax",
+]
+
+[[package]]
+name = "regex-automata"
+version = "0.3.2"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "e076559ef8e241f2ae3479e36f97bd5741c0330689e217ad51ce2c76808b868a"
+checksum = "83d3daa6976cffb758ec878f108ba0e062a45b2d6ca3a2cca965338855476caf"
dependencies = [
"aho-corasick",
"memchr",
@@ -227,17 +289,22 @@ dependencies = [
[[package]]
name = "regex-syntax"
-version = "0.6.28"
+version = "0.7.3"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "456c603be3e8d448b072f410900c09faf164fbce2d480456f50eea6e25f9c848"
+checksum = "2ab07dc67230e4a4718e70fd5c20055a4334b121f1f9db8fe63ef39ce9b8c846"
[[package]]
-name = "remove_dir_all"
-version = "0.5.3"
+name = "rustix"
+version = "0.37.23"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "3acd125665422973a33ac9d3dd2df85edad0f4ae9b00dafb1a05e43a9f5ef8e7"
+checksum = "4d69718bf81c6127a49dc64e44a742e8bb9213c0ff8869a22c308f84c1d4ab06"
dependencies = [
- "winapi",
+ "bitflags 1.3.2",
+ "errno",
+ "io-lifetimes",
+ "libc",
+ "linux-raw-sys",
+ "windows-sys",
]
[[package]]
@@ -254,16 +321,16 @@ dependencies = [
[[package]]
name = "tempfile"
-version = "3.3.0"
+version = "3.6.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "5cdb1ef4eaeeaddc8fbd371e5017057064af0911902ef36b39801f67cc6d79e4"
+checksum = "31c0432476357e58790aaa47a8efb0c5138f137343f3b5f23bd36a27e3b0a6d6"
dependencies = [
+ "autocfg",
"cfg-if",
"fastrand",
- "libc",
"redox_syscall",
- "remove_dir_all",
- "winapi",
+ "rustix",
+ "windows-sys",
]
[[package]]
@@ -288,26 +355,70 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "9c8d87e72b64a3b4db28d11ce29237c246188f4f51057d65a7eab63b7987e423"
[[package]]
-name = "winapi"
-version = "0.3.9"
+name = "windows-sys"
+version = "0.48.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "677d2418bec65e3338edb076e806bc1ec15693c5d0104683f2efe857f61056a9"
+dependencies = [
+ "windows-targets",
+]
+
+[[package]]
+name = "windows-targets"
+version = "0.48.1"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "5c839a674fcd7a98952e593242ea400abe93992746761e38641405d28b00f419"
+checksum = "05d4b17490f70499f20b9e791dcf6a299785ce8af4d709018206dc5b4953e95f"
dependencies = [
- "winapi-i686-pc-windows-gnu",
- "winapi-x86_64-pc-windows-gnu",
+ "windows_aarch64_gnullvm",
+ "windows_aarch64_msvc",
+ "windows_i686_gnu",
+ "windows_i686_msvc",
+ "windows_x86_64_gnu",
+ "windows_x86_64_gnullvm",
+ "windows_x86_64_msvc",
]
[[package]]
-name = "winapi-i686-pc-windows-gnu"
-version = "0.4.0"
+name = "windows_aarch64_gnullvm"
+version = "0.48.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "91ae572e1b79dba883e0d315474df7305d12f569b400fcf90581b06062f7e1bc"
+
+[[package]]
+name = "windows_aarch64_msvc"
+version = "0.48.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "b2ef27e0d7bdfcfc7b868b317c1d32c641a6fe4629c171b8928c7b08d98d7cf3"
+
+[[package]]
+name = "windows_i686_gnu"
+version = "0.48.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "622a1962a7db830d6fd0a69683c80a18fda201879f0f447f065a3b7467daa241"
+
+[[package]]
+name = "windows_i686_msvc"
+version = "0.48.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "4542c6e364ce21bf45d69fdd2a8e455fa38d316158cfd43b3ac1c5b1b19f8e00"
+
+[[package]]
+name = "windows_x86_64_gnu"
+version = "0.48.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "ca2b8a661f7628cbd23440e50b05d705db3686f894fc9580820623656af974b1"
+
+[[package]]
+name = "windows_x86_64_gnullvm"
+version = "0.48.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "ac3b87c63620426dd9b991e5ce0329eff545bccbbb34f3be09ff6fb6ab51b7b6"
+checksum = "7896dbc1f41e08872e9d5e8f8baa8fdd2677f29468c4e156210174edc7f7b953"
[[package]]
-name = "winapi-x86_64-pc-windows-gnu"
-version = "0.4.0"
+name = "windows_x86_64_msvc"
+version = "0.48.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "712e227841d057c1ee1cd2fb22fa7e5a5461ae8e48fa2ca79ec42cfc1931183f"
+checksum = "1a515f5799fe4961cb532f983ce2b23082366b898e52ffbce459c86f67c8378a"
[[package]]
name = "x86"
@@ -316,6 +427,6 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "2781db97787217ad2a2845c396a5efe286f87467a5810836db6d74926e94a385"
dependencies = [
"bit_field",
- "bitflags",
+ "bitflags 1.3.2",
"raw-cpuid",
]
diff --git a/vendor/proptest/Cargo.toml b/vendor/proptest/Cargo.toml
index e90054914..ef4276c1d 100644
--- a/vendor/proptest/Cargo.toml
+++ b/vendor/proptest/Cargo.toml
@@ -11,9 +11,9 @@
[package]
edition = "2018"
-rust-version = "1.60"
+rust-version = "1.64"
name = "proptest"
-version = "1.2.0"
+version = "1.3.1"
authors = ["Jason Lingle"]
exclude = [
"/gen-*.sh",
@@ -33,7 +33,7 @@ keywords = [
"hypothesis",
]
categories = ["development-tools::testing"]
-license = "MIT/Apache-2.0"
+license = "MIT OR Apache-2.0"
repository = "https://github.com/proptest-rs/proptest"
[package.metadata.docs.rs]
@@ -44,15 +44,15 @@ rustdoc-args = [
]
[dependencies.bit-set]
-version = "0.5.0"
+version = "0.5.2"
optional = true
-[dependencies.bitflags]
-version = "1.0.1"
+[dependencies.bit-vec]
+version = "0.6.0"
+optional = true
-[dependencies.byteorder]
-version = "1.2.3"
-default-features = false
+[dependencies.bitflags]
+version = "2"
[dependencies.lazy_static]
version = "1.2"
@@ -76,7 +76,7 @@ default-features = false
version = "0.3"
[dependencies.regex-syntax]
-version = "0.6.0"
+version = "0.7"
optional = true
[dependencies.rusty-fork]
@@ -96,18 +96,20 @@ version = "0.52.0"
optional = true
[dev-dependencies.regex]
-version = "1.0"
+version = "1"
[features]
alloc = []
atomic64bit = []
-break-dead-code = []
+bit-set = [
+ "dep:bit-set",
+ "dep:bit-vec",
+]
default = [
"std",
"fork",
"timeout",
"bit-set",
- "break-dead-code",
]
default-code-coverage = [
"std",
@@ -123,7 +125,6 @@ fork = [
hardware-rng = ["x86"]
std = [
"rand/std",
- "byteorder/std",
"lazy_static",
"regex-syntax",
"num-traits/std",
diff --git a/vendor/proptest/README.md b/vendor/proptest/README.md
index 6e75df06b..ac42d0764 100644
--- a/vendor/proptest/README.md
+++ b/vendor/proptest/README.md
@@ -1,7 +1,6 @@
# Proptest
[![Build Status](https://github.com/proptest-rs/proptest/workflows/Rust/badge.svg?branch=master)](https://github.com/proptest-rs/proptest/actions)
-[![Build status](https://ci.appveyor.com/api/projects/status/ofe98xfthbx1m608/branch/master?svg=true)](https://ci.appveyor.com/project/AltSysrq/proptest/branch/master)
[![](https://img.shields.io/crates/v/proptest.svg)](https://crates.io/crates/proptest)
[![](https://img.shields.io/website/https/proptest-rs.github.io/proptest.svg)][book]
[![](https://docs.rs/proptest/badge.svg)][api-docs]
@@ -34,8 +33,8 @@ for a full list of substantial historical changes, breaking and otherwise.
### MSRV
-The current MSRV of this crate is 1.60.
-The MSRV is guaranteed to not exceeed `<current stable release> - 7`, though in practice it may be lower than this - your mileage may vary.
+The current MSRV of this crate is 1.64.
+The MSRV is guaranteed to not exceed `<current stable release> - 7`, though in practice it may be lower than this - your mileage may vary.
If we change this policy in a backwards incompatible way (e.g. changing it to `<current stable release> - 1`), this constitutes a breaking change, and would be a major version bump (e.g. 1.1 -> 2.0).
### What is property testing?
diff --git a/vendor/proptest/src/arbitrary/_alloc/char.rs b/vendor/proptest/src/arbitrary/_alloc/char.rs
index fab9dd824..58a261e41 100644
--- a/vendor/proptest/src/arbitrary/_alloc/char.rs
+++ b/vendor/proptest/src/arbitrary/_alloc/char.rs
@@ -43,7 +43,6 @@ impl_wrap_char!(ToLowercase, char::to_lowercase);
#[cfg(feature = "unstable")]
impl_wrap_char!(ToUppercase, char::to_uppercase);
-#[cfg(feature = "break-dead-code")]
arbitrary!(DecodeUtf16<<Vec<u16> as IntoIterator>::IntoIter>,
SMapped<Vec<u16>, Self>;
static_map(vec(any::<u16>(), ..VEC_MAX), decode_utf16)
@@ -75,7 +74,6 @@ mod test {
decode_utf16_error => DecodeUtf16Error
);
- #[cfg(feature = "break-dead-code")]
no_panic_test!(
decode_utf16 => DecodeUtf16<<Vec<u16> as IntoIterator>::IntoIter>
);
diff --git a/vendor/proptest/src/arbitrary/_std/path.rs b/vendor/proptest/src/arbitrary/_std/path.rs
index e7d063c17..2e71b03db 100644
--- a/vendor/proptest/src/arbitrary/_std/path.rs
+++ b/vendor/proptest/src/arbitrary/_std/path.rs
@@ -11,13 +11,121 @@
use std::path::*;
-// TODO: Figure out PathBuf and then Box/Rc/Box<Path>.
+use crate::{
+ arbitrary::{SMapped, StrategyFor},
+ path::PathParams,
+ prelude::{any, any_with, Arbitrary, Strategy},
+ std_facade::{string::ToString, Arc, Box, Rc, String, Vec},
+ strategy::{statics::static_map, MapInto},
+};
arbitrary!(StripPrefixError; Path::new("").strip_prefix("a").unwrap_err());
+/// A private type (not actually pub) representing the output of [`PathParams`] that can't be
+/// referred to by API users.
+///
+/// The goal of this type is to encapsulate the output of `PathParams`. If this layer weren't
+/// present, the type of `<PathBuf as Arbitrary>::Strategy` would be `SMapped<(bool, Vec<String>),
+/// Self>`. This is a problem because it exposes the internal representation of `PathParams` as an
+/// API. For example, if an additional parameter of randomness (e.g. another bool) were added, the
+/// type of `Strategy` would change.
+///
+/// With `PathParamsOutput`, the type of `Strategy` is `SMapped<PathParamsOutput, Self>`, which is a
+/// type that can't be named directly---only via `<PathBuf as Arbitrary>::Strategy`. The internal
+/// representation of `PathParams` can be changed without affecting the API.
+#[derive(Debug)]
+pub struct PathParamsOutput {
+ is_absolute: bool,
+ components: Vec<String>,
+}
+
+impl Arbitrary for PathParamsOutput {
+ type Parameters = PathParams;
+ type Strategy = SMapped<(bool, Vec<String>), Self>;
+
+ fn arbitrary_with(args: Self::Parameters) -> Self::Strategy {
+ static_map(
+ (
+ any::<bool>(),
+ any_with::<Vec<String>>((
+ args.components(),
+ args.component_regex(),
+ )),
+ ),
+ |(is_absolute, components)| Self {
+ is_absolute,
+ components,
+ },
+ )
+ }
+}
+
+/// This implementation accepts as its argument a [`PathParams`] struct. It generates either a
+/// relative or an absolute path with equal probability.
+///
+/// Currently, this implementation does not generate:
+///
+/// * Paths that are not valid UTF-8 (this is unlikely to change)
+/// * Paths with a [`PrefixComponent`](std::path::PrefixComponent) on Windows, e.g. `C:\` (this may
+/// change in the future)
+impl Arbitrary for PathBuf {
+ type Parameters = PathParams;
+ type Strategy = SMapped<PathParamsOutput, Self>;
+
+ fn arbitrary_with(args: Self::Parameters) -> Self::Strategy {
+ static_map(
+ any_with::<PathParamsOutput>(args),
+ |PathParamsOutput {
+ is_absolute,
+ components,
+ }| {
+ let mut out = PathBuf::new();
+ if is_absolute {
+ out.push(&MAIN_SEPARATOR.to_string());
+ }
+
+ for component in components {
+ // If a component has an embedded / (or \ on Windows), remove it from the
+ // string.
+ let component = component
+ .chars()
+ .filter(|&c| !std::path::is_separator(c))
+ .collect::<String>();
+ out.push(&component);
+ }
+
+ out
+ },
+ )
+ }
+}
+
+macro_rules! dst_wrapped {
+ ($($w: ident),*) => {
+ $(
+ /// This implementation is identical to [the `Arbitrary` implementation for
+ /// `PathBuf`](trait.Arbitrary.html#impl-Arbitrary-for-PathBuf).
+ impl Arbitrary for $w<Path> {
+ type Parameters = PathParams;
+ type Strategy = MapInto<StrategyFor<PathBuf>, Self>;
+
+ fn arbitrary_with(args: Self::Parameters) -> Self::Strategy {
+ any_with::<PathBuf>(args).prop_map_into()
+ }
+ }
+ )*
+ }
+}
+
+dst_wrapped!(Box, Rc, Arc);
+
#[cfg(test)]
mod test {
no_panic_test!(
- strip_prefix_error => StripPrefixError
+ strip_prefix_error => StripPrefixError,
+ path_buf => PathBuf,
+ box_path => Box<Path>,
+ rc_path => Rc<Path>,
+ arc_path => Arc<Path>
);
}
diff --git a/vendor/proptest/src/bits.rs b/vendor/proptest/src/bits.rs
index 342eb28b1..89b183ed1 100644
--- a/vendor/proptest/src/bits.rs
+++ b/vendor/proptest/src/bits.rs
@@ -22,6 +22,8 @@ use core::mem;
#[cfg(feature = "bit-set")]
use bit_set::BitSet;
+#[cfg(feature = "bit-set")]
+use bit_vec::BitVec;
use rand::{self, seq::IteratorRandom, Rng};
use crate::collection::SizeRange;
@@ -450,8 +452,15 @@ pub(crate) mod varsize {
impl VarBitSet {
/// Create a bit set of `len` set values.
+ #[cfg(not(feature = "bit-set"))]
+ pub fn saturated(len: usize) -> Self {
+ Self(vec![true; len])
+ }
+
+ /// Create a bit set of `len` set values.
+ #[cfg(feature = "bit-set")]
pub fn saturated(len: usize) -> Self {
- (0..len).collect::<VarBitSet>()
+ Self(BitSet::from_bit_vec(BitVec::from_elem(len, true)))
}
#[cfg(not(feature = "bit-set"))]
@@ -492,8 +501,10 @@ pub(crate) mod varsize {
}
impl FromIterator<usize> for VarBitSet {
- fn from_iter<T: IntoIterator<Item = usize>>(iter: T) -> Self {
- let mut bits = VarBitSet::new_bitset(0);
+ fn from_iter<T: IntoIterator<Item = usize>>(into_iter: T) -> Self {
+ let iter = into_iter.into_iter();
+ let lower_bound = iter.size_hint().0;
+ let mut bits = VarBitSet::new_bitset(lower_bound);
for bit in iter {
bits.set(bit);
}
diff --git a/vendor/proptest/src/lib.rs b/vendor/proptest/src/lib.rs
index 818c32645..72b90ffbf 100644
--- a/vendor/proptest/src/lib.rs
+++ b/vendor/proptest/src/lib.rs
@@ -27,10 +27,6 @@
feature(allocator_api, try_trait_v2, generator_trait, never_type)
)]
#![cfg_attr(all(feature = "std", feature = "unstable"), feature(ip))]
-#![cfg_attr(
- all(feature = "alloc", not(feature = "std")),
- feature(core_intrinsics)
-)]
#![cfg_attr(docsrs, feature(doc_cfg))]
// std_facade is used in a few macros, so it needs to be public.
@@ -90,6 +86,9 @@ pub mod test_runner;
pub mod tuple;
pub mod option;
+#[cfg(feature = "std")]
+#[cfg_attr(docsrs, doc(cfg(feature = "std")))]
+pub mod path;
pub mod result;
pub mod sample;
#[cfg(feature = "std")]
diff --git a/vendor/proptest/src/num.rs b/vendor/proptest/src/num.rs
index 3aa785db4..ebf8593a4 100644
--- a/vendor/proptest/src/num.rs
+++ b/vendor/proptest/src/num.rs
@@ -362,6 +362,7 @@ unsigned_integer_bin_search!(u128);
unsigned_integer_bin_search!(usize);
bitflags! {
+ #[derive(Debug, Clone, Copy, PartialEq, Eq, PartialOrd, Ord, Hash)]
pub(crate) struct FloatTypes: u32 {
const POSITIVE = 0b0000_0001;
const NEGATIVE = 0b0000_0010;
@@ -372,13 +373,13 @@ bitflags! {
const QUIET_NAN = 0b0100_0000;
const SIGNALING_NAN = 0b1000_0000;
const ANY =
- Self::POSITIVE.bits |
- Self::NEGATIVE.bits |
- Self::NORMAL.bits |
- Self::SUBNORMAL.bits |
- Self::ZERO.bits |
- Self::INFINITE.bits |
- Self::QUIET_NAN.bits;
+ Self::POSITIVE.bits() |
+ Self::NEGATIVE.bits() |
+ Self::NORMAL.bits() |
+ Self::SUBNORMAL.bits() |
+ Self::ZERO.bits() |
+ Self::INFINITE.bits() |
+ Self::QUIET_NAN.bits();
}
}
diff --git a/vendor/proptest/src/path.rs b/vendor/proptest/src/path.rs
new file mode 100644
index 000000000..76242817d
--- /dev/null
+++ b/vendor/proptest/src/path.rs
@@ -0,0 +1,55 @@
+//! Strategies for generating [`PathBuf`] and related path types.
+//!
+//! [`PathParams`] in this module is used as the argument to the
+//! [`Arbitrary`](crate::arbitrary::Arbitrary) implementation for [`PathBuf`].
+
+use crate::{collection::SizeRange, string::StringParam};
+
+/// Parameters for the [`Arbitrary`] implementation for [`PathBuf`].
+///
+/// By default, this generates paths with 0 to 8 components uniformly at random, each of which is a
+/// default [`StringParam`].
+#[derive(Clone, Debug, PartialEq, Eq, Hash)]
+pub struct PathParams {
+ /// The number of components in the path.
+ components: SizeRange,
+ /// The regular expression to generate individual components.
+ component_regex: StringParam,
+}
+
+impl PathParams {
+ /// Gets the number of components in the path.
+ pub fn components(&self) -> SizeRange {
+ self.components.clone()
+ }
+
+ /// Sets the number of components in the path.
+ pub fn with_components(mut self, components: impl Into<SizeRange>) -> Self {
+ self.components = components.into();
+ self
+ }
+
+ /// Gets the regular expression to generate individual components.
+ pub fn component_regex(&self) -> StringParam {
+ self.component_regex
+ }
+
+ /// Sets the regular expression to generate individual components.
+ pub fn with_component_regex(
+ mut self,
+ component_regex: impl Into<StringParam>,
+ ) -> Self {
+ self.component_regex = component_regex.into();
+ self
+ }
+}
+
+impl Default for PathParams {
+ fn default() -> Self {
+ Self {
+ components: (0..8).into(),
+ // This is the default regex for `any::<String>()`.
+ component_regex: StringParam::default(),
+ }
+ }
+}
diff --git a/vendor/proptest/src/sample.rs b/vendor/proptest/src/sample.rs
index 9c464f132..86ba6818e 100644
--- a/vendor/proptest/src/sample.rs
+++ b/vendor/proptest/src/sample.rs
@@ -245,6 +245,14 @@ impl Index {
}
}
+// This impl is handy for generic code over any type that exposes an internal `Index` -- with it,
+// a plain `Index` can be passed in as well.
+impl AsRef<Index> for Index {
+ fn as_ref(&self) -> &Index {
+ self
+ }
+}
+
mapfn! {
[] fn UsizeToIndex[](raw: usize) -> Index {
Index(raw)
diff --git a/vendor/proptest/src/string.rs b/vendor/proptest/src/string.rs
index 8777388f5..935cb21ca 100644
--- a/vendor/proptest/src/string.rs
+++ b/vendor/proptest/src/string.rs
@@ -16,14 +16,8 @@ use core::mem;
use core::ops::RangeInclusive;
use core::u32;
-use regex_syntax::hir::{
- self, Hir,
- HirKind::*,
- Literal::*,
- RepetitionKind::{self, *},
- RepetitionRange::*,
-};
-use regex_syntax::{Error as ParseError, Parser};
+use regex_syntax::hir::{self, Hir, HirKind::*, Repetition};
+use regex_syntax::{Error as ParseError, ParserBuilder};
use crate::bool;
use crate::char;
@@ -33,7 +27,7 @@ use crate::test_runner::*;
/// Wraps the regex that forms the `Strategy` for `String` so that a sensible
/// `Default` can be given. The default is a string of non-control characters.
-#[derive(Copy, Clone, PartialEq, Eq, PartialOrd, Ord, Hash)]
+#[derive(Copy, Clone, Debug, PartialEq, Eq, PartialOrd, Ord, Hash)]
pub struct StringParam(&'static str);
impl From<StringParam> for &'static str {
@@ -150,7 +144,8 @@ impl StrategyFromRegex for Vec<u8> {
/// If you don't need error handling and aren't limited by setup time, it is
/// also possible to directly use a `&str` as a strategy with the same effect.
pub fn string_regex(regex: &str) -> ParseResult<String> {
- string_regex_parsed(&regex_to_hir(regex)?)
+ let hir = ParserBuilder::new().build().parse(regex)?;
+ string_regex_parsed(&hir)
}
/// Like `string_regex()`, but allows providing a pre-parsed expression.
@@ -167,8 +162,20 @@ pub fn string_regex_parsed(expr: &Hir) -> ParseResult<String> {
/// Creates a strategy which generates byte strings matching the given regular
/// expression.
+///
+/// By default, the byte strings generated by this strategy _will_ be valid
+/// UTF-8. If you wish to generate byte strings that aren't (necessarily)
+/// valid UTF-8, wrap your regex (or some subsection of it) in `(?-u: ... )`.
+/// You may want to turn on the `s` flag as well (`(?s-u: ... )`) so that `.`
+/// will generate newline characters (byte value `0x0A`). See the
+/// [`regex` crate's documentation](https://docs.rs/regex/*/regex/#opt-out-of-unicode-support)
+/// for more information.
pub fn bytes_regex(regex: &str) -> ParseResult<Vec<u8>> {
- bytes_regex_parsed(&regex_to_hir(regex)?)
+ let hir = ParserBuilder::new()
+ .utf8(false)
+ .build()
+ .parse(regex)?;
+ bytes_regex_parsed(&hir)
}
/// Like `bytes_regex()`, but allows providing a pre-parsed expression.
@@ -176,11 +183,7 @@ pub fn bytes_regex_parsed(expr: &Hir) -> ParseResult<Vec<u8>> {
match expr.kind() {
Empty => Ok(Just(vec![]).sboxed()),
- Literal(lit) => Ok(Just(match lit {
- Unicode(scalar) => to_bytes(*scalar),
- Byte(byte) => vec![*byte],
- })
- .sboxed()),
+ Literal(lit) => Ok(Just(lit.0.to_vec()).sboxed()),
Class(class) => Ok(match class {
hir::Class::Unicode(class) => {
@@ -192,19 +195,13 @@ pub fn bytes_regex_parsed(expr: &Hir) -> ParseResult<Vec<u8>> {
}
}),
- Repetition(rep) => Ok(vec(
- bytes_regex_parsed(&rep.hir)?,
- to_range(rep.kind.clone())?,
- )
- .prop_map(|parts| {
- parts.into_iter().fold(vec![], |mut acc, child| {
- acc.extend(child);
- acc
- })
- })
- .sboxed()),
+ Repetition(rep) => {
+ Ok(vec(bytes_regex_parsed(&rep.sub)?, to_range(rep)?)
+ .prop_map(|parts| parts.concat())
+ .sboxed())
+ }
- Group(group) => bytes_regex_parsed(&group.hir).map(|v| v.0),
+ Capture(capture) => bytes_regex_parsed(&capture.sub).map(|v| v.0),
Concat(subs) => {
let subs = ConcatIter {
@@ -232,12 +229,8 @@ pub fn bytes_regex_parsed(expr: &Hir) -> ParseResult<Vec<u8>> {
Ok(Union::try_new(subs.iter().map(bytes_regex_parsed))?.sboxed())
}
- Anchor(_) => {
- unsupported("line/text anchors not supported for string generation")
- }
-
- WordBoundary(_) => unsupported(
- "word boundary tests not supported for string generation",
+ Look(_) => unsupported(
+ "anchors/boundaries not supported for string generation",
),
}
.map(RegexGeneratorStrategy)
@@ -298,8 +291,7 @@ impl<'a, I: Iterator<Item = &'a Hir>> Iterator for ConcatIter<'a, I> {
while let Some(next) = self.iter.next() {
match next.kind() {
// A literal. Accumulate:
- Literal(Unicode(scalar)) => self.buf.extend(to_bytes(*scalar)),
- Literal(Byte(byte)) => self.buf.push(*byte),
+ Literal(literal) => self.buf.extend_from_slice(&literal.0),
// Encountered a non-literal.
_ => {
return if !self.buf.is_empty() {
@@ -324,31 +316,35 @@ impl<'a, I: Iterator<Item = &'a Hir>> Iterator for ConcatIter<'a, I> {
}
}
-fn to_range(kind: RepetitionKind) -> Result<SizeRange, Error> {
- Ok(match kind {
- ZeroOrOne => size_range(0..=1),
- ZeroOrMore => size_range(0..=32),
- OneOrMore => size_range(1..=32),
- Range(range) => match range {
- Exactly(count) if u32::MAX == count => {
- return unsupported(
- "Cannot have repetition of exactly u32::MAX",
- )
- }
- Exactly(count) => size_range(count as usize),
- AtLeast(min) => {
- let max = if min < u32::MAX as u32 / 2 {
- min as usize * 2
- } else {
- u32::MAX as usize
- };
- size_range((min as usize)..max)
- }
- Bounded(_, max) if u32::MAX == max => {
- return unsupported("Cannot have repetition max of u32::MAX")
- }
- Bounded(min, max) => size_range((min as usize)..(max as usize + 1)),
- },
+fn to_range(rep: &Repetition) -> Result<SizeRange, Error> {
+ Ok(match (rep.min, rep.max) {
+ // Zero or one
+ (0, Some(1)) => size_range(0..=1),
+ // Zero or more
+ (0, None) => size_range(0..=32),
+ // One or more
+ (1, None) => size_range(1..=32),
+ // Exact count of u32::MAX
+ (u32::MAX, Some(u32::MAX)) => {
+ return unsupported("Cannot have repetition of exactly u32::MAX");
+ }
+ // Exact count
+ (min, Some(max)) if min == max => size_range(min as usize),
+ // At least min
+ (min, None) => {
+ let max = if min < u32::MAX as u32 / 2 {
+ min as usize * 2
+ } else {
+ u32::MAX as usize
+ };
+ size_range((min as usize)..max)
+ }
+ // Bounded range with max of u32::MAX
+ (_, Some(u32::MAX)) => {
+ return unsupported("Cannot have repetition max of u32::MAX")
+ }
+ // Bounded range
+ (min, Some(max)) => size_range((min as usize)..(max as usize + 1)),
})
}
@@ -357,10 +353,6 @@ fn to_bytes(khar: char) -> Vec<u8> {
khar.encode_utf8(&mut buf).as_bytes().to_owned()
}
-fn regex_to_hir(pattern: &str) -> Result<Hir, Error> {
- Ok(Parser::new().parse(pattern)?)
-}
-
fn unsupported<T>(error: &'static str) -> Result<T, Error> {
Err(Error::UnsupportedRegex(error))
}
@@ -370,9 +362,17 @@ mod test {
use std::collections::HashSet;
use regex::Regex;
+ use regex::bytes::Regex as BytesRegex;
use super::*;
+ fn printable_ascii(v: &[u8]) -> String {
+ v.iter()
+ .flat_map(|c| std::ascii::escape_default(*c))
+ .map(|c| char::from_u32(c.into()).unwrap())
+ .collect()
+ }
+
fn do_test(
pattern: &str,
min_distinct: usize,
@@ -396,6 +396,29 @@ mod test {
);
}
+ fn do_test_bytes(
+ pattern: &str,
+ min_distinct: usize,
+ max_distinct: usize,
+ iterations: usize,
+ ) {
+ let generated = generate_byte_values_matching_regex(pattern, iterations);
+ assert!(
+ generated.len() >= min_distinct,
+ "Expected to generate at least {} strings, but only \
+ generated {}",
+ min_distinct,
+ generated.len()
+ );
+ assert!(
+ generated.len() <= max_distinct,
+ "Expected to generate at most {} strings, but \
+ generated {}",
+ max_distinct,
+ generated.len()
+ );
+ }
+
fn generate_values_matching_regex(
pattern: &str,
iterations: usize,
@@ -432,6 +455,42 @@ mod test {
generated
}
+ fn generate_byte_values_matching_regex(
+ pattern: &str,
+ iterations: usize,
+ ) -> HashSet<Vec<u8>> {
+ let rx = BytesRegex::new(pattern).unwrap();
+ let mut generated = HashSet::new();
+
+ let strategy = bytes_regex(pattern).unwrap();
+ let mut runner = TestRunner::deterministic();
+ for _ in 0..iterations {
+ let mut value = strategy.new_tree(&mut runner).unwrap();
+
+ loop {
+ let s = value.current();
+ let ok = if let Some(matsch) = rx.find(&s) {
+ 0 == matsch.start() && s.len() == matsch.end()
+ } else {
+ false
+ };
+ if !ok {
+ panic!(
+ "Generated string {:?} which does not match {:?}",
+ printable_ascii(&s), pattern
+ );
+ }
+
+ generated.insert(s);
+
+ if !value.simplify() {
+ break;
+ }
+ }
+ }
+ generated
+ }
+
#[test]
fn test_case_insensitive_produces_all_available_values() {
let mut expected: HashSet<String> = HashSet::new();
@@ -445,6 +504,7 @@ mod test {
#[test]
fn test_literal() {
do_test("foo", 1, 1, 8);
+ do_test_bytes("foo", 1, 1, 8);
}
#[test]
@@ -455,36 +515,43 @@ mod test {
#[test]
fn test_alternation() {
do_test("foo|bar|baz", 3, 3, 16);
+ do_test_bytes("foo|bar|baz", 3, 3, 16);
}
#[test]
- fn test_repitition() {
+ fn test_repetition() {
do_test("a{0,8}", 9, 9, 64);
+ do_test_bytes("a{0,8}", 9, 9, 64);
}
#[test]
fn test_question() {
do_test("a?", 2, 2, 16);
+ do_test_bytes("a?", 2, 2, 16);
}
#[test]
fn test_star() {
do_test("a*", 33, 33, 256);
+ do_test_bytes("a*", 33, 33, 256);
}
#[test]
fn test_plus() {
do_test("a+", 32, 32, 256);
+ do_test_bytes("a+", 32, 32, 256);
}
#[test]
fn test_n_to_range() {
do_test("a{4,}", 4, 4, 64);
+ do_test_bytes("a{4,}", 4, 4, 64);
}
#[test]
fn test_concatenation() {
do_test("(foo|bar)(xyzzy|plugh)", 4, 4, 32);
+ do_test_bytes("(foo|bar)(xyzzy|plugh)", 4, 4, 32);
}
#[test]
@@ -505,6 +572,7 @@ mod test {
#[test]
fn test_dot_s() {
do_test("(?s).", 200, 65536, 256);
+ do_test_bytes("(?s-u).", 256, 256, 2048);
}
#[test]
@@ -512,6 +580,16 @@ mod test {
do_test("\\d+", 1, 65536, 256);
}
+ #[test]
+ fn test_non_utf8_byte_strings() {
+ do_test_bytes(r"(?-u)[\xC0-\xFF]\x20", 64, 64, 512);
+ do_test_bytes(r"(?-u)\x20[\x80-\xBF]", 64, 64, 512);
+ do_test_bytes(r#"(?x-u)
+ \xed (( ( \xa0\x80 | \xad\xbf | \xae\x80 | \xaf\xbf )
+ ( \xed ( \xb0\x80 | \xbf\xbf ) )? )
+ | \xb0\x80 | \xbe\x80 | \xbf\xbf )"#, 15, 15, 120);
+ }
+
fn assert_send_and_sync<T: Send + Sync>(_: T) {}
#[test]
diff --git a/vendor/proptest/src/sugar.rs b/vendor/proptest/src/sugar.rs
index e16d2dda9..6b76b30cf 100644
--- a/vendor/proptest/src/sugar.rs
+++ b/vendor/proptest/src/sugar.rs
@@ -333,52 +333,64 @@ macro_rules! prop_oneof {
($_weight0:expr => $item0:expr $(,)?) => { $item0 };
+ // NOTE: The clippy::arc_with_non_send_sync lint is disabled here because
+ // the strategies passed into prop_oneof! are often not Send or Sync, such
+ // as BoxedStrategy.
+ //
+ // The double-curly-braces are not strictly required, but allow the expression
+ // to be annotated with an attribute.
+
($weight0:expr => $item0:expr,
- $weight1:expr => $item1:expr $(,)?) => {
+ $weight1:expr => $item1:expr $(,)?) => {{
+ #[allow(clippy::arc_with_non_send_sync)]
$crate::strategy::TupleUnion::new(
(($weight0, $crate::std_facade::Arc::new($item0)),
($weight1, $crate::std_facade::Arc::new($item1))))
- };
+ }};
($weight0:expr => $item0:expr,
$weight1:expr => $item1:expr,
- $weight2:expr => $item2:expr $(,)?) => {
+ $weight2:expr => $item2:expr $(,)?) => {{
+ #[allow(clippy::arc_with_non_send_sync)]
$crate::strategy::TupleUnion::new(
(($weight0, $crate::std_facade::Arc::new($item0)),
($weight1, $crate::std_facade::Arc::new($item1)),
($weight2, $crate::std_facade::Arc::new($item2))))
- };
+ }};
($weight0:expr => $item0:expr,
$weight1:expr => $item1:expr,
$weight2:expr => $item2:expr,
- $weight3:expr => $item3:expr $(,)?) => {
+ $weight3:expr => $item3:expr $(,)?) => {{
+ #[allow(clippy::arc_with_non_send_sync)]
$crate::strategy::TupleUnion::new(
(($weight0, $crate::std_facade::Arc::new($item0)),
($weight1, $crate::std_facade::Arc::new($item1)),
($weight2, $crate::std_facade::Arc::new($item2)),
($weight3, $crate::std_facade::Arc::new($item3))))
- };
+ }};
($weight0:expr => $item0:expr,
$weight1:expr => $item1:expr,
$weight2:expr => $item2:expr,
$weight3:expr => $item3:expr,
- $weight4:expr => $item4:expr $(,)?) => {
+ $weight4:expr => $item4:expr $(,)?) => {{
+ #[allow(clippy::arc_with_non_send_sync)]
$crate::strategy::TupleUnion::new(
(($weight0, $crate::std_facade::Arc::new($item0)),
($weight1, $crate::std_facade::Arc::new($item1)),
($weight2, $crate::std_facade::Arc::new($item2)),
($weight3, $crate::std_facade::Arc::new($item3)),
($weight4, $crate::std_facade::Arc::new($item4))))
- };
+ }};
($weight0:expr => $item0:expr,
$weight1:expr => $item1:expr,
$weight2:expr => $item2:expr,
$weight3:expr => $item3:expr,
$weight4:expr => $item4:expr,
- $weight5:expr => $item5:expr $(,)?) => {
+ $weight5:expr => $item5:expr $(,)?) => {{
+ #[allow(clippy::arc_with_non_send_sync)]
$crate::strategy::TupleUnion::new(
(($weight0, $crate::std_facade::Arc::new($item0)),
($weight1, $crate::std_facade::Arc::new($item1)),
@@ -386,7 +398,7 @@ macro_rules! prop_oneof {
($weight3, $crate::std_facade::Arc::new($item3)),
($weight4, $crate::std_facade::Arc::new($item4)),
($weight5, $crate::std_facade::Arc::new($item5))))
- };
+ }};
($weight0:expr => $item0:expr,
$weight1:expr => $item1:expr,
@@ -394,7 +406,8 @@ macro_rules! prop_oneof {
$weight3:expr => $item3:expr,
$weight4:expr => $item4:expr,
$weight5:expr => $item5:expr,
- $weight6:expr => $item6:expr $(,)?) => {
+ $weight6:expr => $item6:expr $(,)?) => {{
+ #[allow(clippy::arc_with_non_send_sync)]
$crate::strategy::TupleUnion::new(
(($weight0, $crate::std_facade::Arc::new($item0)),
($weight1, $crate::std_facade::Arc::new($item1)),
@@ -403,7 +416,7 @@ macro_rules! prop_oneof {
($weight4, $crate::std_facade::Arc::new($item4)),
($weight5, $crate::std_facade::Arc::new($item5)),
($weight6, $crate::std_facade::Arc::new($item6))))
- };
+ }};
($weight0:expr => $item0:expr,
$weight1:expr => $item1:expr,
@@ -412,7 +425,8 @@ macro_rules! prop_oneof {
$weight4:expr => $item4:expr,
$weight5:expr => $item5:expr,
$weight6:expr => $item6:expr,
- $weight7:expr => $item7:expr $(,)?) => {
+ $weight7:expr => $item7:expr $(,)?) => {{
+ #[allow(clippy::arc_with_non_send_sync)]
$crate::strategy::TupleUnion::new(
(($weight0, $crate::std_facade::Arc::new($item0)),
($weight1, $crate::std_facade::Arc::new($item1)),
@@ -422,7 +436,7 @@ macro_rules! prop_oneof {
($weight5, $crate::std_facade::Arc::new($item5)),
($weight6, $crate::std_facade::Arc::new($item6)),
($weight7, $crate::std_facade::Arc::new($item7))))
- };
+ }};
($weight0:expr => $item0:expr,
$weight1:expr => $item1:expr,
@@ -432,7 +446,8 @@ macro_rules! prop_oneof {
$weight5:expr => $item5:expr,
$weight6:expr => $item6:expr,
$weight7:expr => $item7:expr,
- $weight8:expr => $item8:expr $(,)?) => {
+ $weight8:expr => $item8:expr $(,)?) => {{
+ #[allow(clippy::arc_with_non_send_sync)]
$crate::strategy::TupleUnion::new(
(($weight0, $crate::std_facade::Arc::new($item0)),
($weight1, $crate::std_facade::Arc::new($item1)),
@@ -443,7 +458,7 @@ macro_rules! prop_oneof {
($weight6, $crate::std_facade::Arc::new($item6)),
($weight7, $crate::std_facade::Arc::new($item7)),
($weight8, $crate::std_facade::Arc::new($item8))))
- };
+ }};
($weight0:expr => $item0:expr,
$weight1:expr => $item1:expr,
@@ -454,7 +469,8 @@ macro_rules! prop_oneof {
$weight6:expr => $item6:expr,
$weight7:expr => $item7:expr,
$weight8:expr => $item8:expr,
- $weight9:expr => $item9:expr $(,)?) => {
+ $weight9:expr => $item9:expr $(,)?) => {{
+ #[allow(clippy::arc_with_non_send_sync)]
$crate::strategy::TupleUnion::new(
(($weight0, $crate::std_facade::Arc::new($item0)),
($weight1, $crate::std_facade::Arc::new($item1)),
@@ -466,7 +482,7 @@ macro_rules! prop_oneof {
($weight7, $crate::std_facade::Arc::new($item7)),
($weight8, $crate::std_facade::Arc::new($item8)),
($weight9, $crate::std_facade::Arc::new($item9))))
- };
+ }};
($($weight:expr => $item:expr),+ $(,)?) => {
$crate::strategy::Union::new_weighted(vec![
diff --git a/vendor/proptest/src/test_runner/config.rs b/vendor/proptest/src/test_runner/config.rs
index 04940abc4..232de951b 100644
--- a/vendor/proptest/src/test_runner/config.rs
+++ b/vendor/proptest/src/test_runner/config.rs
@@ -356,7 +356,8 @@ pub struct Config {
/// meaning of certain levels other than 0 is subject to change.
///
/// - 0: No extra output.
- /// - 1: Log test failure messages.
+ /// - 1: Log test failure messages. In state machine tests, this level is
+ /// used to print transitions.
/// - 2: Trace low-level details.
///
/// This is only available with the `std` feature (enabled by default)
diff --git a/vendor/proptest/src/test_runner/failure_persistence/file.rs b/vendor/proptest/src/test_runner/failure_persistence/file.rs
index 61d7dcf6a..21799adb2 100644
--- a/vendor/proptest/src/test_runner/failure_persistence/file.rs
+++ b/vendor/proptest/src/test_runner/failure_persistence/file.rs
@@ -39,12 +39,11 @@ pub enum FileFailurePersistence {
/// `Direct("NUL")` on Windows (though it is internally handled by simply
/// not doing any I/O).
Off,
- /// The path given to `TestRunner::set_source_file()` is parsed. The path
- /// is traversed up the directory tree until a directory containing a file
- /// named `lib.rs` or `main.rs` is found. A sibling to that directory with
- /// the name given by the string in this configuration is created, and a
- /// file with the same name and path relative to the source directory, but
- /// with the extension changed to `.txt`, is used.
+ /// The path of the source file under test is traversed up the directory tree
+ /// until a directory containing a file named `lib.rs` or `main.rs` is found.
+ /// A sibling to that directory with the name given by the string in this
+ /// configuration is created, and a file with the same name and path relative
+ /// to the source directory, but with the extension changed to `.txt`, is used.
///
/// For example, given a source path of
/// `/home/jsmith/code/project/src/foo/bar.rs` and a configuration of
@@ -58,9 +57,9 @@ pub enum FileFailurePersistence {
/// If no source file has been configured, a warning is printed and this
/// behaves like `Off`.
SourceParallel(&'static str),
- /// The path given to `TestRunner::set_source_file()` is parsed. The
- /// extension of the path is changed to the string given in this
- /// configuration, and that filename is used.
+ /// Failures are persisted in a file with the same path as the source file
+ /// under test, but the extension is changed to the string given in this
+ /// configuration.
///
/// For example, given a source path of
/// `/home/jsmith/code/project/src/foo/bar.rs` and a configuration of
@@ -151,7 +150,7 @@ impl FailurePersistence for FileFailurePersistence {
path.display(),
e
);
- } else if is_new {
+ } else {
eprintln!(
"proptest: Saving this and future failures in {}\n\
proptest: If this test was run on a CI system, you may \
diff --git a/vendor/proptest/src/test_runner/rng.rs b/vendor/proptest/src/test_runner/rng.rs
index 78c8d7a75..31dd3a354 100644
--- a/vendor/proptest/src/test_runner/rng.rs
+++ b/vendor/proptest/src/test_runner/rng.rs
@@ -9,9 +9,8 @@
use crate::std_facade::{Arc, String, ToOwned, Vec};
use core::result::Result;
-use core::{fmt, str, u8};
+use core::{fmt, str, u8, convert::TryInto};
-use byteorder::{ByteOrder, LittleEndian};
use rand::{self, Rng, RngCore, SeedableRng};
use rand_chacha::ChaChaRng;
use rand_xorshift::XorShiftRng;
@@ -137,7 +136,7 @@ impl RngCore for TestRng {
&mut TestRngImpl::PassThrough { .. } => {
let mut buf = [0; 4];
self.fill_bytes(&mut buf[..]);
- LittleEndian::read_u32(&buf[..])
+ u32::from_le_bytes(buf)
}
&mut TestRngImpl::Recorder {
@@ -160,7 +159,7 @@ impl RngCore for TestRng {
&mut TestRngImpl::PassThrough { .. } => {
let mut buf = [0; 8];
self.fill_bytes(&mut buf[..]);
- LittleEndian::read_u64(&buf[..])
+ u64::from_le_bytes(buf)
}
&mut TestRngImpl::Recorder {
@@ -302,7 +301,9 @@ impl Seed {
}
let mut seed = [0u8; 16];
- LittleEndian::write_u32_into(&dwords[..], &mut seed[..]);
+ for (chunk, dword) in seed.chunks_mut(4).zip(dwords) {
+ chunk.copy_from_slice(&dword.to_le_bytes());
+ }
Some(Seed::XorShift(seed))
}
@@ -354,8 +355,12 @@ impl Seed {
match *self {
Seed::XorShift(ref seed) => {
- let mut dwords = [0u32; 4];
- LittleEndian::read_u32_into(seed, &mut dwords[..]);
+ let dwords = [
+ u32::from_le_bytes(seed[0..4].try_into().unwrap()),
+ u32::from_le_bytes(seed[4..8].try_into().unwrap()),
+ u32::from_le_bytes(seed[8..12].try_into().unwrap()),
+ u32::from_le_bytes(seed[12..16].try_into().unwrap()),
+ ];
format!(
"{} {} {} {} {}",
RngAlgorithm::XorShift.persistence_key(),
diff --git a/vendor/proptest/src/test_runner/runner.rs b/vendor/proptest/src/test_runner/runner.rs
index ce540499e..27d0ddf82 100644
--- a/vendor/proptest/src/test_runner/runner.rs
+++ b/vendor/proptest/src/test_runner/runner.rs
@@ -39,7 +39,9 @@ use crate::test_runner::rng::TestRng;
const ENV_FORK_FILE: &'static str = "_PROPTEST_FORKFILE";
const ALWAYS: u32 = 0;
-const SHOW_FALURES: u32 = 1;
+/// Verbose level 1 to show failures. In state machine tests this level is used
+/// to print transitions.
+pub const INFO_LOG: u32 = 1;
const TRACE: u32 = 2;
#[cfg(feature = "std")]
@@ -279,18 +281,12 @@ where
match result {
Ok(()) => verbose_message!(runner, TRACE, "Test case passed"),
- Err(TestCaseError::Reject(ref reason)) => verbose_message!(
- runner,
- SHOW_FALURES,
- "Test case rejected: {}",
- reason
- ),
- Err(TestCaseError::Fail(ref reason)) => verbose_message!(
- runner,
- SHOW_FALURES,
- "Test case failed: {}",
- reason
- ),
+ Err(TestCaseError::Reject(ref reason)) => {
+ verbose_message!(runner, INFO_LOG, "Test case rejected: {}", reason)
+ }
+ Err(TestCaseError::Fail(ref reason)) => {
+ verbose_message!(runner, INFO_LOG, "Test case failed: {}", reason)
+ }
}
result.map(|_| {