Skip to content

Commit c6ef2d6

Browse files
authored
Merge pull request #59 from tnull/2026-02-remove-proptest
Remove `proptest` dev-dependency in favor of manual randomization
2 parents 166861f + 8be27f1 commit c6ef2d6

File tree

3 files changed

+15
-6
lines changed

3 files changed

+15
-6
lines changed

.github/workflows/build.yml

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -26,7 +26,6 @@ jobs:
2626
if: matrix.msrv
2727
run: |
2828
cargo update -p idna_adapter --precise 1.1.0 # This has us use `unicode-normalization` which has a more conservative MSRV
29-
cargo update -p proptest --precise "1.8.0" --verbose # proptest 1.9.0 requires rustc 1.82.0
3029
- name: Build on Rust ${{ matrix.toolchain }}
3130
run: cargo build --verbose --color always
3231
- name: Check formatting

Cargo.toml

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -39,7 +39,6 @@ bitreq = { version = "0.3", default-features = false, features = ["std", "https"
3939

4040
[dev-dependencies]
4141
mockito = "0.28.0"
42-
proptest = "1.1.0"
4342
tokio = { version = "1.22.0", features = ["macros"]}
4443

4544
[lints.rust.unexpected_cfgs]

src/util/key_obfuscator.rs

Lines changed: 15 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -194,11 +194,22 @@ mod tests {
194194
assert_eq!(deobfuscated_key, "my_storage_key_v031_compat");
195195
}
196196

197-
use proptest::prelude::*;
197+
#[test]
198+
fn obfuscate_deobfuscate_randomized() {
199+
use rand::Rng;
200+
201+
let charset =
202+
b"abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789_!@#,;:% *$^&()[]{}.\t\n\r";
203+
let mut rng = rand::thread_rng();
204+
205+
for _ in 0..100 {
206+
let mut obfuscation_master_key = [0u8; 32];
207+
rng.fill(&mut obfuscation_master_key);
208+
209+
let key_len: usize = rng.gen_range(0..128);
210+
let expected_key: String =
211+
(0..key_len).map(|_| charset[rng.gen_range(0..charset.len())] as char).collect();
198212

199-
proptest! {
200-
#[test]
201-
fn obfuscate_deobfuscate_proptest(expected_key in "[a-zA-Z0-9_!@#,;:%\\s\\*\\$\\^&\\(\\)\\[\\]\\{\\}\\.]*", obfuscation_master_key in any::<[u8; 32]>()) {
202213
let key_obfuscator = KeyObfuscator::new(obfuscation_master_key);
203214
let obfuscated_key = key_obfuscator.obfuscate(&expected_key);
204215
let actual_key = key_obfuscator.deobfuscate(obfuscated_key.as_str()).unwrap();

0 commit comments

Comments
 (0)