Skip to content

Commit 8336923

Browse files
authored
Use postcard instead of bincode in tests (#1693)
2 parents 17b12b1 + 1e08cf5 commit 8336923

File tree

13 files changed

+23
-46
lines changed

13 files changed

+23
-46
lines changed

CHANGELOG.md

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -18,6 +18,7 @@ You may also find the [Upgrade Guide](https://rust-random.github.io/book/update.
1818
- Replace fn `TryRngCore::read_adapter(..) -> RngReadAdapter` with simpler struct `RngReader` (#1669)
1919
- Remove fns `SeedableRng::from_os_rng`, `try_from_os_rng` (#1674)
2020
- Remove `Clone` support for `StdRng`, `ReseedingRng` (#1677)
21+
- Use `postcard` instead of `bincode` to test the serde feature (#1693)
2122

2223
### Additions
2324
- Add fns `IndexedRandom::choose_iter`, `choose_weighted_iter` (#1632)

Cargo.toml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -82,6 +82,6 @@ getrandom = { version = "0.3.0", optional = true }
8282
[dev-dependencies]
8383
rand_pcg = { path = "rand_pcg", version = "0.10.0-rc.1" }
8484
# Only to test serde
85-
bincode = "1.2.1"
85+
postcard = {version = "1.1.3", default-features = false, features = ["alloc"]}
8686
rayon = "1.7"
8787
serde_json = "1.0.140"

rand_pcg/CHANGELOG.md

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -8,6 +8,7 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
88
### Changes
99
- Use Edition 2024 and MSRV 1.85 (#1653)
1010
- Remove feature `os_rng` (#1674)
11+
- Use `postcard` instead of `bincode` to test the serde feature (#1693)
1112

1213
## [0.9.0] - 2025-01-27
1314
### Dependencies and features

rand_pcg/Cargo.toml

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -29,5 +29,4 @@ serde = { version = "1", features = ["derive"], optional = true }
2929
[dev-dependencies]
3030
# This is for testing serde, unfortunately we can't specify feature-gated dev
3131
# deps yet, see: https://github.com/rust-lang/cargo/issues/1596
32-
# Versions prior to 1.1.4 had incorrect minimal dependencies.
33-
bincode = { version = "1.1.4" }
32+
postcard = {version = "1.1.3", default-features = false, features = ["alloc"]}

rand_pcg/tests/lcg128cmdxsm64.rs

Lines changed: 3 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -57,19 +57,14 @@ fn test_lcg128cmdxsm64_reference() {
5757
#[cfg(feature = "serde")]
5858
#[test]
5959
fn test_lcg128cmdxsm64_serde() {
60-
use bincode;
61-
use std::io::{BufReader, BufWriter};
60+
use postcard;
6261

6362
let mut rng = Lcg128CmDxsm64::seed_from_u64(0);
6463

65-
let buf: Vec<u8> = Vec::new();
66-
let mut buf = BufWriter::new(buf);
67-
bincode::serialize_into(&mut buf, &rng).expect("Could not serialize");
64+
let buf = postcard::to_allocvec(&rng).expect("Could not serialize");
6865

69-
let buf = buf.into_inner().unwrap();
70-
let mut read = BufReader::new(&buf[..]);
7166
let mut deserialized: Lcg128CmDxsm64 =
72-
bincode::deserialize_from(&mut read).expect("Could not deserialize");
67+
postcard::from_bytes(&buf).expect("Could not deserialize");
7368

7469
for _ in 0..16 {
7570
assert_eq!(rng.next_u64(), deserialized.next_u64());

rand_pcg/tests/lcg128xsl64.rs

Lines changed: 3 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -57,19 +57,13 @@ fn test_lcg128xsl64_reference() {
5757
#[cfg(feature = "serde")]
5858
#[test]
5959
fn test_lcg128xsl64_serde() {
60-
use bincode;
61-
use std::io::{BufReader, BufWriter};
60+
use postcard;
6261

6362
let mut rng = Lcg128Xsl64::seed_from_u64(0);
6463

65-
let buf: Vec<u8> = Vec::new();
66-
let mut buf = BufWriter::new(buf);
67-
bincode::serialize_into(&mut buf, &rng).expect("Could not serialize");
64+
let buf = postcard::to_allocvec(&rng).expect("Could not serialize");
6865

69-
let buf = buf.into_inner().unwrap();
70-
let mut read = BufReader::new(&buf[..]);
71-
let mut deserialized: Lcg128Xsl64 =
72-
bincode::deserialize_from(&mut read).expect("Could not deserialize");
66+
let mut deserialized: Lcg128Xsl64 = postcard::from_bytes(&buf).expect("Could not deserialize");
7367

7468
for _ in 0..16 {
7569
assert_eq!(rng.next_u64(), deserialized.next_u64());

rand_pcg/tests/lcg64xsh32.rs

Lines changed: 3 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -50,19 +50,12 @@ fn test_lcg64xsh32_reference() {
5050
#[cfg(feature = "serde")]
5151
#[test]
5252
fn test_lcg64xsh32_serde() {
53-
use bincode;
54-
use std::io::{BufReader, BufWriter};
55-
53+
use postcard;
5654
let mut rng = Lcg64Xsh32::seed_from_u64(0);
5755

58-
let buf: Vec<u8> = Vec::new();
59-
let mut buf = BufWriter::new(buf);
60-
bincode::serialize_into(&mut buf, &rng).expect("Could not serialize");
56+
let buf = postcard::to_allocvec(&rng).expect("Could not serialize");
6157

62-
let buf = buf.into_inner().unwrap();
63-
let mut read = BufReader::new(&buf[..]);
64-
let mut deserialized: Lcg64Xsh32 =
65-
bincode::deserialize_from(&mut read).expect("Could not deserialize");
58+
let mut deserialized: Lcg64Xsh32 = postcard::from_bytes(&buf).expect("Could not deserialize");
6659

6760
for _ in 0..16 {
6861
assert_eq!(rng.next_u64(), deserialized.next_u64());

rand_pcg/tests/mcg128xsl64.rs

Lines changed: 3 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -55,19 +55,13 @@ fn test_mcg128xsl64_reference() {
5555
#[cfg(feature = "serde")]
5656
#[test]
5757
fn test_mcg128xsl64_serde() {
58-
use bincode;
59-
use std::io::{BufReader, BufWriter};
58+
use postcard;
6059

6160
let mut rng = Mcg128Xsl64::seed_from_u64(0);
6261

63-
let buf: Vec<u8> = Vec::new();
64-
let mut buf = BufWriter::new(buf);
65-
bincode::serialize_into(&mut buf, &rng).expect("Could not serialize");
62+
let buf = postcard::to_allocvec(&rng).expect("Could not serialize");
6663

67-
let buf = buf.into_inner().unwrap();
68-
let mut read = BufReader::new(&buf[..]);
69-
let mut deserialized: Mcg128Xsl64 =
70-
bincode::deserialize_from(&mut read).expect("Could not deserialize");
64+
let mut deserialized: Mcg128Xsl64 = postcard::from_bytes(&buf).expect("Could not deserialize");
7165

7266
for _ in 0..16 {
7367
assert_eq!(rng.next_u64(), deserialized.next_u64());

src/distr/bernoulli.rs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -173,7 +173,7 @@ mod test {
173173
fn test_serializing_deserializing_bernoulli() {
174174
let coin_flip = Bernoulli::new(0.5).unwrap();
175175
let de_coin_flip: Bernoulli =
176-
bincode::deserialize(&bincode::serialize(&coin_flip).unwrap()).unwrap();
176+
postcard::from_bytes(&postcard::to_allocvec(&coin_flip).unwrap()).unwrap();
177177

178178
assert_eq!(coin_flip.p_int, de_coin_flip.p_int);
179179
}

src/distr/uniform.rs

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -496,12 +496,12 @@ mod tests {
496496
fn test_uniform_serialization() {
497497
let unit_box: Uniform<i32> = Uniform::new(-1, 1).unwrap();
498498
let de_unit_box: Uniform<i32> =
499-
bincode::deserialize(&bincode::serialize(&unit_box).unwrap()).unwrap();
499+
postcard::from_bytes(&postcard::to_allocvec(&unit_box).unwrap()).unwrap();
500500
assert_eq!(unit_box.0, de_unit_box.0);
501501

502502
let unit_box: Uniform<f32> = Uniform::new(-1., 1.).unwrap();
503503
let de_unit_box: Uniform<f32> =
504-
bincode::deserialize(&bincode::serialize(&unit_box).unwrap()).unwrap();
504+
postcard::from_bytes(&postcard::to_allocvec(&unit_box).unwrap()).unwrap();
505505
assert_eq!(unit_box.0, de_unit_box.0);
506506
}
507507

0 commit comments

Comments
 (0)