@@ -328,30 +328,13 @@ mod tests {
328
328
} ;
329
329
330
330
use alloc:: vec:: Vec ;
331
+ use rand:: { thread_rng, Rng } ;
331
332
332
- // Perhaps this should be replaced with `rand` crate; I did not took liberty of importing that as
333
- // dependency.
334
- struct Rng ( u32 ) ;
335
-
336
- impl Rng {
337
- fn new ( ) -> Self {
338
- Rng ( 1234 )
339
- }
340
-
341
- fn next ( & mut self ) -> u8 {
342
- self . 0 = ( self . 0 * 75 + 74 ) % ( 65537 ) ;
343
-
344
- ( self . 0 % 256 ) as u8
345
- }
346
-
347
- fn next_vec ( & mut self , len : usize ) -> Vec < u8 > {
348
- let mut result = vec ! [ ] ;
349
- for _ in 0 ..len {
350
- result. push ( self . next ( ) ) ;
351
- }
352
-
353
- result
354
- }
333
+ fn generate_random_vec ( len : usize ) -> Vec < u8 > {
334
+ let mut result = vec ! [ 0_u8 ; len] ;
335
+ let mut rng = thread_rng ( ) ;
336
+ rng. fill ( result. as_mut_slice ( ) ) ;
337
+ result
355
338
}
356
339
357
340
#[ cfg( feature = "unaligned" ) ]
@@ -421,8 +404,7 @@ mod tests {
421
404
422
405
#[ test]
423
406
fn test_no_alloc_buffer_segments_single_segment_optimization ( ) {
424
- let mut rng = Rng :: new ( ) ;
425
- let segment_0 = rng. next_vec ( 128 ) ;
407
+ let segment_0 = generate_random_vec ( 128 ) ;
426
408
let output_segments = OutputSegments :: SingleSegment ( [ & segment_0] ) ;
427
409
428
410
let mut msg = vec ! [ ] ;
@@ -445,11 +427,10 @@ mod tests {
445
427
#[ test]
446
428
fn test_no_alloc_buffer_segments_multiple_segments ( ) {
447
429
for count in 1 ..10 {
448
- let mut rng = Rng :: new ( ) ;
449
430
let mut segments_vec = vec ! [ ] ;
450
431
for i in 0 ..count {
451
432
let vec_len = 8 * 2_usize . pow ( i as u32 ) ;
452
- segments_vec. push ( rng . next_vec ( vec_len) ) ;
433
+ segments_vec. push ( generate_random_vec ( vec_len) ) ;
453
434
}
454
435
let segments: Vec < _ > = segments_vec. iter ( ) . map ( |s| s. as_slice ( ) ) . collect ( ) ;
455
436
@@ -513,11 +494,10 @@ mod tests {
513
494
514
495
#[ test]
515
496
fn test_no_alloc_buffer_segments_message_truncated ( ) {
516
- let mut rng = Rng :: new ( ) ;
517
497
let mut segments_vec = vec ! [ ] ;
518
498
for i in 0 ..5 {
519
499
let vec_len = 8 * 2_usize . pow ( i as u32 ) ;
520
- segments_vec. push ( rng . next_vec ( vec_len) ) ;
500
+ segments_vec. push ( generate_random_vec ( vec_len) ) ;
521
501
}
522
502
let segments: Vec < _ > = segments_vec. iter ( ) . map ( |s| s. as_slice ( ) ) . collect ( ) ;
523
503
@@ -536,10 +516,9 @@ mod tests {
536
516
537
517
#[ test]
538
518
fn test_no_alloc_buffer_segments_message_options_limit ( ) {
539
- let mut rng = Rng :: new ( ) ;
540
519
let mut segments_vec = vec ! [ ] ;
541
520
for _ in 0 ..10 {
542
- segments_vec. push ( rng . next_vec ( 128 ) ) ;
521
+ segments_vec. push ( generate_random_vec ( 128 ) ) ;
543
522
}
544
523
let segments: Vec < _ > = segments_vec. iter ( ) . map ( |s| s. as_slice ( ) ) . collect ( ) ;
545
524
@@ -565,8 +544,7 @@ mod tests {
565
544
566
545
#[ test]
567
546
fn test_no_alloc_buffer_segments_bad_alignment ( ) {
568
- let mut rng = Rng :: new ( ) ;
569
- let segment_0 = rng. next_vec ( 128 ) ;
547
+ let segment_0 = generate_random_vec ( 128 ) ;
570
548
let output_segments = OutputSegments :: SingleSegment ( [ & segment_0] ) ;
571
549
572
550
let mut msg = vec ! [ ] ;
0 commit comments