Skip to content

Commit

Permalink
Merge pull request #135 from Dr-Emann/bump_sys_version
Browse files Browse the repository at this point in the history
Bump sys version
  • Loading branch information
saulius committed Jun 26, 2024
2 parents 0c63c34 + cdb125f commit aa46258
Show file tree
Hide file tree
Showing 6 changed files with 63 additions and 28 deletions.
2 changes: 1 addition & 1 deletion Cargo.lock

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

2 changes: 1 addition & 1 deletion croaring-sys/Cargo.toml
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
[package]
name = "croaring-sys"
version = "2.1.0"
version = "3.0.0"
edition = "2021"
authors = ["croaring-rs developers"]
license = "Apache-2.0"
Expand Down
2 changes: 1 addition & 1 deletion croaring/Cargo.toml
Original file line number Diff line number Diff line change
Expand Up @@ -25,7 +25,7 @@ roaring = "0.10"
criterion = { version = "0.5", features = ["html_reports"] }

[dependencies]
ffi = { package = "croaring-sys", path = "../croaring-sys", version = "2.1.0" }
ffi = { package = "croaring-sys", path = "../croaring-sys", version = "3.0.0" }

[[bench]]
name = "benches"
Expand Down
36 changes: 15 additions & 21 deletions fuzz/Cargo.lock

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

47 changes: 44 additions & 3 deletions fuzz/fuzz_targets/deserialize.rs
Original file line number Diff line number Diff line change
@@ -1,13 +1,21 @@
#![no_main]

use croaring::{Bitmap, Native, Portable};
use croaring::{Bitmap, Bitmap64, Native, Portable};
use libfuzzer_sys::fuzz_target;

fn check_bitmap<D: croaring::bitmap::Deserializer>(input: &[u8]) {
let bitmap = Bitmap::try_deserialize::<D>(input);
if let Some(mut bitmap) = bitmap {
bitmap.internal_validate().unwrap();

let unsafe_version = unsafe { D::try_deserialize_unchecked(input) };
assert_eq!(
bitmap,
unsafe_version,
"Unsafe doesn't match safe {}",
std::any::type_name::<D>()
);

let start_cardinality = bitmap.cardinality();
let mut new_cardinality = start_cardinality;
for i in 100..1000 {
Expand All @@ -16,14 +24,47 @@ fn check_bitmap<D: croaring::bitmap::Deserializer>(input: &[u8]) {
new_cardinality += 1;
}
}
assert_eq!(new_cardinality, bitmap.cardinality());
assert_eq!(
new_cardinality,
bitmap.cardinality(),
"Cardinality mismatch in {}",
std::any::type_name::<D>()
);
}
}

fn check_bitmap64<D: croaring::bitmap64::Deserializer>(input: &[u8]) {
let bitmap = Bitmap64::try_deserialize::<D>(input);
if let Some(mut bitmap) = bitmap {
bitmap.internal_validate().unwrap();

let unsafe_version = unsafe { D::try_deserialize_unchecked(input) };
assert_eq!(bitmap, unsafe_version);
assert_eq!(
bitmap,
unsafe_version,
"Unsafe doesn't match safe {}",
std::any::type_name::<D>()
);

let start_cardinality = bitmap.cardinality();
let mut new_cardinality = start_cardinality;
for i in 100..1000 {
if !bitmap.contains(i) {
bitmap.add(i);
new_cardinality += 1;
}
}
assert_eq!(
new_cardinality,
bitmap.cardinality(),
"Cardinality mismatch in {}",
std::any::type_name::<D>()
);
}
}

fuzz_target!(|input: &[u8]| {
check_bitmap::<Portable>(input);
check_bitmap::<Native>(input);
check_bitmap64::<Portable>(input);
});
2 changes: 1 addition & 1 deletion fuzz/fuzz_targets/fuzz_ops.rs
Original file line number Diff line number Diff line change
Expand Up @@ -38,7 +38,7 @@ fn check_serialized(lhs: &mut Bitmap, to_compare: &Bitmap, v: &mut Vec<u8>, inpu
v.clear();

let data = to_compare.serialize::<Portable>();
let data2 = to_compare.serialize_into::<Frozen>(v);
let data2 = to_compare.serialize_into_vec::<Frozen>(v);
let view1 = unsafe { BitmapView::deserialize::<Portable>(&data) };
assert_eq!(view1, *to_compare);
let view2 = unsafe { BitmapView::deserialize::<Frozen>(data2) };
Expand Down

0 comments on commit aa46258

Please sign in to comment.