use workspace rand version

This commit is contained in:
pedrocarlo
2025-10-05 17:28:00 -03:00
parent eb835c39d4
commit 8501bc930a
7 changed files with 40 additions and 37 deletions

2
Cargo.lock generated
View File

@@ -4915,7 +4915,7 @@ dependencies = [
"pprof",
"quickcheck",
"quickcheck_macros",
"rand 0.8.5",
"rand 0.9.2",
"rand_chacha 0.9.0",
"regex",
"regex-syntax",

View File

@@ -59,7 +59,7 @@ regex-syntax = { workspace = true, default-features = false, features = [
] }
chrono = { workspace = true, default-features = false, features = ["clock"] }
julian_day_converter = "0.4.5"
rand = "0.8.5"
rand = { workspace = true }
libm = "0.2"
turso_macros = { workspace = true }
miette = { workspace = true }
@@ -103,7 +103,6 @@ rstest = "0.18.2"
rusqlite = { workspace = true, features = ["series"] }
quickcheck = { version = "1.0", default-features = false }
quickcheck_macros = { version = "1.0", default-features = false }
rand = "0.8.5" # Required for quickcheck
rand_chacha = { workspace = true }
env_logger = { workspace = true }
test-log = { version = "0.2.17", features = ["trace"] }

View File

@@ -485,7 +485,7 @@ impl StreamingLogicalLogReader {
mod tests {
use std::{collections::HashSet, sync::Arc};
use rand::{thread_rng, Rng};
use rand::{rng, Rng};
use rand_chacha::{
rand_core::{RngCore, SeedableRng},
ChaCha8Rng,
@@ -646,7 +646,7 @@ mod tests {
#[test]
fn test_logical_log_read_fuzz() {
let seed = thread_rng().gen();
let seed = rng().random();
let mut rng = ChaCha8Rng::seed_from_u64(seed);
let num_transactions = rng.next_u64() % 128;
let mut txns = vec![];

View File

@@ -7875,7 +7875,7 @@ fn shift_pointers_left(page: &mut PageContent, cell_idx: usize) {
#[cfg(test)]
mod tests {
use rand::{thread_rng, Rng};
use rand::{rng, Rng};
use rand_chacha::{
rand_core::{RngCore, SeedableRng},
ChaCha8Rng,
@@ -9719,7 +9719,7 @@ mod tests {
let mut cells = Vec::new();
let usable_space = 4096;
let mut i = 100000;
let seed = thread_rng().gen();
let seed = rng().random();
tracing::info!("seed {}", seed);
let mut rng = ChaCha8Rng::seed_from_u64(seed);
while i > 0 {

View File

@@ -979,14 +979,14 @@ mod tests {
}
fn generate_random_hex_key() -> String {
let mut rng = rand::thread_rng();
let mut rng = rand::rng();
let mut bytes = [0u8; 32];
rng.fill(&mut bytes);
hex::encode(bytes)
}
fn generate_random_hex_key_128() -> String {
let mut rng = rand::thread_rng();
let mut rng = rand::rng();
let mut bytes = [0u8; 16];
rng.fill(&mut bytes);
hex::encode(bytes)
@@ -995,7 +995,7 @@ mod tests {
fn create_test_page_1() -> Vec<u8> {
let mut page = vec![0u8; DEFAULT_ENCRYPTED_PAGE_SIZE];
page[..SQLITE_HEADER.len()].copy_from_slice(SQLITE_HEADER);
let mut rng = rand::thread_rng();
let mut rng = rand::rng();
// 48 is the max reserved bytes we might need for metadata with any cipher
rng.fill(&mut page[SQLITE_HEADER.len()..DEFAULT_ENCRYPTED_PAGE_SIZE - 48]);
page
@@ -1135,7 +1135,7 @@ mod tests {
#[test]
fn test_aes128gcm_encrypt_decrypt_round_trip() {
let mut rng = rand::thread_rng();
let mut rng = rand::rng();
let cipher_mode = CipherMode::Aes128Gcm;
let metadata_size = cipher_mode.metadata_size();
let data_size = DEFAULT_ENCRYPTED_PAGE_SIZE - metadata_size;
@@ -1144,7 +1144,7 @@ mod tests {
let mut page = vec![0u8; DEFAULT_ENCRYPTED_PAGE_SIZE];
page.iter_mut()
.take(data_size)
.for_each(|byte| *byte = rng.gen());
.for_each(|byte| *byte = rng.random());
page
};
@@ -1165,7 +1165,7 @@ mod tests {
#[test]
fn test_aes_encrypt_decrypt_round_trip() {
let mut rng = rand::thread_rng();
let mut rng = rand::rng();
let cipher_mode = CipherMode::Aes256Gcm;
let metadata_size = cipher_mode.metadata_size();
let data_size = DEFAULT_ENCRYPTED_PAGE_SIZE - metadata_size;
@@ -1174,7 +1174,7 @@ mod tests {
let mut page = vec![0u8; DEFAULT_ENCRYPTED_PAGE_SIZE];
page.iter_mut()
.take(data_size)
.for_each(|byte| *byte = rng.gen());
.for_each(|byte| *byte = rng.random());
page
};
@@ -1211,7 +1211,7 @@ mod tests {
#[test]
fn test_aegis256_encrypt_decrypt_round_trip() {
let mut rng = rand::thread_rng();
let mut rng = rand::rng();
let cipher_mode = CipherMode::Aegis256;
let metadata_size = cipher_mode.metadata_size();
let data_size = DEFAULT_ENCRYPTED_PAGE_SIZE - metadata_size;
@@ -1220,7 +1220,7 @@ mod tests {
let mut page = vec![0u8; DEFAULT_ENCRYPTED_PAGE_SIZE];
page.iter_mut()
.take(data_size)
.for_each(|byte| *byte = rng.gen());
.for_each(|byte| *byte = rng.random());
page
};
@@ -1256,7 +1256,7 @@ mod tests {
#[test]
fn test_aegis128x2_encrypt_decrypt_round_trip() {
let mut rng = rand::thread_rng();
let mut rng = rand::rng();
let cipher_mode = CipherMode::Aegis128X2;
let metadata_size = cipher_mode.metadata_size();
let data_size = DEFAULT_ENCRYPTED_PAGE_SIZE - metadata_size;
@@ -1265,7 +1265,7 @@ mod tests {
let mut page = vec![0u8; DEFAULT_ENCRYPTED_PAGE_SIZE];
page.iter_mut()
.take(data_size)
.for_each(|byte| *byte = rng.gen());
.for_each(|byte| *byte = rng.random());
page
};
@@ -1301,7 +1301,7 @@ mod tests {
#[test]
fn test_aegis128l_encrypt_decrypt_round_trip() {
let mut rng = rand::thread_rng();
let mut rng = rand::rng();
let cipher_mode = CipherMode::Aegis128L;
let metadata_size = cipher_mode.metadata_size();
let data_size = DEFAULT_ENCRYPTED_PAGE_SIZE - metadata_size;
@@ -1310,7 +1310,7 @@ mod tests {
let mut page = vec![0u8; DEFAULT_ENCRYPTED_PAGE_SIZE];
page.iter_mut()
.take(data_size)
.for_each(|byte| *byte = rng.gen());
.for_each(|byte| *byte = rng.random());
page
};
@@ -1346,7 +1346,7 @@ mod tests {
#[test]
fn test_aegis128x4_encrypt_decrypt_round_trip() {
let mut rng = rand::thread_rng();
let mut rng = rand::rng();
let cipher_mode = CipherMode::Aegis128X4;
let metadata_size = cipher_mode.metadata_size();
let data_size = DEFAULT_ENCRYPTED_PAGE_SIZE - metadata_size;
@@ -1355,7 +1355,7 @@ mod tests {
let mut page = vec![0u8; DEFAULT_ENCRYPTED_PAGE_SIZE];
page.iter_mut()
.take(data_size)
.for_each(|byte| *byte = rng.gen());
.for_each(|byte| *byte = rng.random());
page
};
@@ -1391,7 +1391,7 @@ mod tests {
#[test]
fn test_aegis256x2_encrypt_decrypt_round_trip() {
let mut rng = rand::thread_rng();
let mut rng = rand::rng();
let cipher_mode = CipherMode::Aegis256X2;
let metadata_size = cipher_mode.metadata_size();
let data_size = DEFAULT_ENCRYPTED_PAGE_SIZE - metadata_size;
@@ -1400,7 +1400,7 @@ mod tests {
let mut page = vec![0u8; DEFAULT_ENCRYPTED_PAGE_SIZE];
page.iter_mut()
.take(data_size)
.for_each(|byte| *byte = rng.gen());
.for_each(|byte| *byte = rng.random());
page
};
@@ -1436,7 +1436,7 @@ mod tests {
#[test]
fn test_aegis256x4_encrypt_decrypt_round_trip() {
let mut rng = rand::thread_rng();
let mut rng = rand::rng();
let cipher_mode = CipherMode::Aegis256X4;
let metadata_size = cipher_mode.metadata_size();
let data_size = DEFAULT_ENCRYPTED_PAGE_SIZE - metadata_size;
@@ -1445,7 +1445,7 @@ mod tests {
let mut page = vec![0u8; DEFAULT_ENCRYPTED_PAGE_SIZE];
page.iter_mut()
.take(data_size)
.for_each(|byte| *byte = rng.gen());
.for_each(|byte| *byte = rng.random());
page
};

View File

@@ -516,14 +516,14 @@ pub mod tests {
];
for &seed in seeds {
let mut rng = StdRng::seed_from_u64(seed);
let n_slots = rng.gen_range(1..10) * 64;
let n_slots = rng.random_range(1..10) * 64;
let mut pb = SlotBitmap::new(n_slots);
let mut model = vec![true; n_slots as usize];
let iters = 2000usize;
for _ in 0..iters {
let op = rng.gen_range(0..100);
let op = rng.random_range(0..100);
match op {
0..=49 => {
// alloc_one
@@ -540,8 +540,9 @@ pub mod tests {
}
50..=79 => {
// alloc_run with random length
let need =
rng.gen_range(1..=std::cmp::max(1, (n_slots as usize).min(128))) as u32;
let need = rng
.random_range(1..=std::cmp::max(1, (n_slots as usize).min(128)))
as u32;
let got = pb.alloc_run(need);
if let Some(start) = got {
assert!(start + need <= n_slots, "within bounds");
@@ -560,13 +561,14 @@ pub mod tests {
}
_ => {
// free_run on a random valid range
let len =
rng.gen_range(1..=std::cmp::max(1, (n_slots as usize).min(128))) as u32;
let len = rng
.random_range(1..=std::cmp::max(1, (n_slots as usize).min(128)))
as u32;
let max_start = n_slots.saturating_sub(len);
let start = if max_start == 0 {
0
} else {
rng.gen_range(0..=max_start)
rng.random_range(0..=max_start)
};
pb.free_run(start, len);
ref_mark_run(&mut model, start, len, true);

View File

@@ -38,6 +38,7 @@ use crate::{
translate::emitter::TransactionMode,
};
use crate::{get_cursor, CheckpointMode, Connection, MvCursor};
use rand::Rng;
use std::env::temp_dir;
use std::ops::DerefMut;
use std::{
@@ -74,7 +75,7 @@ use super::{
CommitState,
};
use parking_lot::RwLock;
use rand::{thread_rng, Rng, RngCore};
use rand::RngCore;
use turso_parser::ast::{self, ForeignKeyClause, Name, SortOrder};
use turso_parser::parser::Parser;
@@ -6622,8 +6623,9 @@ pub fn op_new_rowid(
// Generate a random i64 and constrain it to the lower half of the rowid range.
// We use the lower half (1 to MAX_ROWID/2) because we're in random mode only
// when sequential allocation reached MAX_ROWID, meaning the upper range is full.
let mut rng = thread_rng();
let mut random_rowid: i64 = rng.gen();
let mut rng = rand::rng();
let mut random_rowid: i64 = rng.random();
random_rowid &= MAX_ROWID >> 1; // Mask to keep value in range [0, MAX_ROWID/2]
random_rowid += 1; // Ensure positive
@@ -8841,7 +8843,7 @@ impl Value {
.max(1) as usize;
let mut blob: Vec<u8> = vec![0; length];
rand::thread_rng().fill_bytes(&mut blob);
rand::rng().fill_bytes(&mut blob);
Value::Blob(blob)
}