summaryrefslogtreecommitdiffstats
path: root/vendor/getrandom/tests/custom.rs
diff options
context:
space:
mode:
authorDaniel Baumann <daniel.baumann@progress-linux.org>2024-05-18 02:49:42 +0000
committerDaniel Baumann <daniel.baumann@progress-linux.org>2024-05-18 02:49:42 +0000
commit837b550238aa671a591ccf282dddeab29cadb206 (patch)
tree914b6b8862bace72bd3245ca184d374b08d8a672 /vendor/getrandom/tests/custom.rs
parentAdding debian version 1.70.0+dfsg2-1. (diff)
downloadrustc-837b550238aa671a591ccf282dddeab29cadb206.tar.xz
rustc-837b550238aa671a591ccf282dddeab29cadb206.zip
Merging upstream version 1.71.1+dfsg1.
Signed-off-by: Daniel Baumann <daniel.baumann@progress-linux.org>
Diffstat (limited to 'vendor/getrandom/tests/custom.rs')
-rw-r--r--vendor/getrandom/tests/custom.rs26
1 files changed, 15 insertions, 11 deletions
diff --git a/vendor/getrandom/tests/custom.rs b/vendor/getrandom/tests/custom.rs
index 62eae1d66..b085094be 100644
--- a/vendor/getrandom/tests/custom.rs
+++ b/vendor/getrandom/tests/custom.rs
@@ -7,13 +7,8 @@
))]
use wasm_bindgen_test::wasm_bindgen_test as test;
-#[cfg(feature = "test-in-browser")]
-wasm_bindgen_test::wasm_bindgen_test_configure!(run_in_browser);
-use core::{
- num::NonZeroU32,
- sync::atomic::{AtomicU8, Ordering},
-};
+use core::num::NonZeroU32;
use getrandom::{getrandom, register_custom_getrandom, Error};
fn len7_err() -> Error {
@@ -21,27 +16,36 @@ fn len7_err() -> Error {
}
fn super_insecure_rng(buf: &mut [u8]) -> Result<(), Error> {
+ // `getrandom` guarantees it will not call any implementation if the output
+ // buffer is empty.
+ assert!(!buf.is_empty());
// Length 7 buffers return a custom error
if buf.len() == 7 {
return Err(len7_err());
}
- // Otherwise, increment an atomic counter
- static COUNTER: AtomicU8 = AtomicU8::new(0);
+ // Otherwise, fill bytes based on input length
+ let mut start = buf.len() as u8;
for b in buf {
- *b = COUNTER.fetch_add(1, Ordering::Relaxed);
+ *b = start;
+ start = start.wrapping_mul(3);
}
Ok(())
}
register_custom_getrandom!(super_insecure_rng);
+use getrandom::getrandom as getrandom_impl;
+mod common;
+
#[test]
fn custom_rng_output() {
let mut buf = [0u8; 4];
assert_eq!(getrandom(&mut buf), Ok(()));
- assert_eq!(buf, [0, 1, 2, 3]);
+ assert_eq!(buf, [4, 12, 36, 108]);
+
+ let mut buf = [0u8; 3];
assert_eq!(getrandom(&mut buf), Ok(()));
- assert_eq!(buf, [4, 5, 6, 7]);
+ assert_eq!(buf, [3, 9, 27]);
}
#[test]