mirror of
https://github.com/aljazceru/turso.git
synced 2026-02-09 02:04:22 +01:00
use workspace rand version
This commit is contained in:
2
Cargo.lock
generated
2
Cargo.lock
generated
@@ -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",
|
||||
|
||||
@@ -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"] }
|
||||
|
||||
@@ -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![];
|
||||
|
||||
@@ -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 {
|
||||
|
||||
@@ -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
|
||||
};
|
||||
|
||||
|
||||
@@ -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);
|
||||
|
||||
@@ -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)
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user