diff options
Diffstat (limited to '')
-rw-r--r-- | vendor/proptest/.cargo-checksum.json | 2 | ||||
-rw-r--r-- | vendor/proptest/CHANGELOG.md | 37 | ||||
-rw-r--r-- | vendor/proptest/Cargo.lock | 209 | ||||
-rw-r--r-- | vendor/proptest/Cargo.toml | 29 | ||||
-rw-r--r-- | vendor/proptest/README.md | 5 | ||||
-rw-r--r-- | vendor/proptest/src/arbitrary/_alloc/char.rs | 2 | ||||
-rw-r--r-- | vendor/proptest/src/arbitrary/_std/path.rs | 112 | ||||
-rw-r--r-- | vendor/proptest/src/bits.rs | 17 | ||||
-rw-r--r-- | vendor/proptest/src/lib.rs | 7 | ||||
-rw-r--r-- | vendor/proptest/src/num.rs | 15 | ||||
-rw-r--r-- | vendor/proptest/src/path.rs | 55 | ||||
-rw-r--r-- | vendor/proptest/src/sample.rs | 8 | ||||
-rw-r--r-- | vendor/proptest/src/string.rs | 210 | ||||
-rw-r--r-- | vendor/proptest/src/sugar.rs | 52 | ||||
-rw-r--r-- | vendor/proptest/src/test_runner/config.rs | 3 | ||||
-rw-r--r-- | vendor/proptest/src/test_runner/failure_persistence/file.rs | 19 | ||||
-rw-r--r-- | vendor/proptest/src/test_runner/rng.rs | 19 | ||||
-rw-r--r-- | vendor/proptest/src/test_runner/runner.rs | 22 |
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(®ex_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(®ex_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(|_| { |