Skip to content

Commit 4765018

Browse files
authored
Merge pull request #870 from eirnym/bump-versions
Bump `criterion` version
2 parents 2b91987 + c90bb27 commit 4765018

File tree

3 files changed

+52
-45
lines changed

3 files changed

+52
-45
lines changed

Cargo.toml

Lines changed: 6 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -27,7 +27,12 @@ tokio = { version = "1.10", optional = true, default-features = false, features
2727
memchr = "2.1"
2828

2929
[dev-dependencies]
30-
criterion = "0.4"
30+
# msrv workflow uses `cargo check` which triesto resolvee all dependencies, even
31+
# not used (for example, when calling `cargo check --lib` only `dependencies` is
32+
# required, `dev-dependencies` are no used). `criterion` 0.6 has msrv = 1.80, so
33+
# we cannot check minimal versions with it. We allow to use `criterion` 0.4 for that
34+
# See https://github.com/rust-lang/cargo/issues/10958
35+
criterion = ">=0.4,<0.7"
3136
pretty_assertions = "1.4"
3237
regex = "1"
3338
# https://github.com/serde-rs/serde/issues/1904 is fixed since 1.0.206

benches/macrobenches.rs

Lines changed: 23 additions & 22 deletions
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,7 @@ use criterion::{self, criterion_group, criterion_main, Criterion, Throughput};
22
use quick_xml::events::Event;
33
use quick_xml::reader::{NsReader, Reader};
44
use quick_xml::Result as XmlResult;
5+
use std::hint::black_box;
56

67
static RPM_PRIMARY: &str = include_str!("../tests/documents/rpm_primary.xml");
78
static RPM_PRIMARY2: &str = include_str!("../tests/documents/rpm_primary2.xml");
@@ -47,17 +48,17 @@ static INPUTS: &[(&str, &str)] = &[
4748
fn parse_document_from_str(doc: &str) -> XmlResult<()> {
4849
let mut r = Reader::from_str(doc);
4950
loop {
50-
match criterion::black_box(r.read_event()?) {
51+
match black_box(r.read_event()?) {
5152
Event::Start(e) | Event::Empty(e) => {
5253
for attr in e.attributes() {
53-
criterion::black_box(attr?.decode_and_unescape_value(r.decoder())?);
54+
black_box(attr?.decode_and_unescape_value(r.decoder())?);
5455
}
5556
}
5657
Event::Text(e) => {
57-
criterion::black_box(e.decode()?);
58+
black_box(e.decode()?);
5859
}
5960
Event::CData(e) => {
60-
criterion::black_box(e.into_inner());
61+
black_box(e.into_inner());
6162
}
6263
Event::End(_) => (),
6364
Event::Eof => break,
@@ -72,17 +73,17 @@ fn parse_document_from_bytes(doc: &[u8]) -> XmlResult<()> {
7273
let mut r = Reader::from_reader(doc);
7374
let mut buf = Vec::new();
7475
loop {
75-
match criterion::black_box(r.read_event_into(&mut buf)?) {
76+
match black_box(r.read_event_into(&mut buf)?) {
7677
Event::Start(e) | Event::Empty(e) => {
7778
for attr in e.attributes() {
78-
criterion::black_box(attr?.decode_and_unescape_value(r.decoder())?);
79+
black_box(attr?.decode_and_unescape_value(r.decoder())?);
7980
}
8081
}
8182
Event::Text(e) => {
82-
criterion::black_box(e.decode()?);
83+
black_box(e.decode()?);
8384
}
8485
Event::CData(e) => {
85-
criterion::black_box(e.into_inner());
86+
black_box(e.into_inner());
8687
}
8788
Event::End(_) => (),
8889
Event::Eof => break,
@@ -97,20 +98,20 @@ fn parse_document_from_bytes(doc: &[u8]) -> XmlResult<()> {
9798
fn parse_document_from_str_with_namespaces(doc: &str) -> XmlResult<()> {
9899
let mut r = NsReader::from_str(doc);
99100
loop {
100-
match criterion::black_box(r.read_resolved_event()?) {
101+
match black_box(r.read_resolved_event()?) {
101102
(resolved_ns, Event::Start(e) | Event::Empty(e)) => {
102-
criterion::black_box(resolved_ns);
103+
black_box(resolved_ns);
103104
for attr in e.attributes() {
104-
criterion::black_box(attr?.decode_and_unescape_value(r.decoder())?);
105+
black_box(attr?.decode_and_unescape_value(r.decoder())?);
105106
}
106107
}
107108
(resolved_ns, Event::Text(e)) => {
108-
criterion::black_box(e.decode()?);
109-
criterion::black_box(resolved_ns);
109+
black_box(e.decode()?);
110+
black_box(resolved_ns);
110111
}
111112
(resolved_ns, Event::CData(e)) => {
112-
criterion::black_box(e.into_inner());
113-
criterion::black_box(resolved_ns);
113+
black_box(e.into_inner());
114+
black_box(resolved_ns);
114115
}
115116
(_, Event::End(_)) => (),
116117
(_, Event::Eof) => break,
@@ -125,20 +126,20 @@ fn parse_document_from_bytes_with_namespaces(doc: &[u8]) -> XmlResult<()> {
125126
let mut r = NsReader::from_reader(doc);
126127
let mut buf = Vec::new();
127128
loop {
128-
match criterion::black_box(r.read_resolved_event_into(&mut buf)?) {
129+
match black_box(r.read_resolved_event_into(&mut buf)?) {
129130
(resolved_ns, Event::Start(e) | Event::Empty(e)) => {
130-
criterion::black_box(resolved_ns);
131+
black_box(resolved_ns);
131132
for attr in e.attributes() {
132-
criterion::black_box(attr?.decode_and_unescape_value(r.decoder())?);
133+
black_box(attr?.decode_and_unescape_value(r.decoder())?);
133134
}
134135
}
135136
(resolved_ns, Event::Text(e)) => {
136-
criterion::black_box(e.decode()?);
137-
criterion::black_box(resolved_ns);
137+
black_box(e.decode()?);
138+
black_box(resolved_ns);
138139
}
139140
(resolved_ns, Event::CData(e)) => {
140-
criterion::black_box(e.into_inner());
141-
criterion::black_box(resolved_ns);
141+
black_box(e.into_inner());
142+
black_box(resolved_ns);
142143
}
143144
(_, Event::End(_)) => (),
144145
(_, Event::Eof) => break,

benches/microbenches.rs

Lines changed: 23 additions & 22 deletions
Original file line numberDiff line numberDiff line change
@@ -4,6 +4,7 @@ use quick_xml::escape::{escape, unescape};
44
use quick_xml::events::Event;
55
use quick_xml::name::QName;
66
use quick_xml::reader::{NsReader, Reader};
7+
use std::hint::black_box;
78

89
static SAMPLE: &str = include_str!("../tests/documents/sample_rss.xml");
910
static PLAYERS: &str = include_str!("../tests/documents/players.xml");
@@ -31,7 +32,7 @@ fn read_event(c: &mut Criterion) {
3132
b.iter(|| {
3233
let mut r = Reader::from_str(SAMPLE);
3334
r.config_mut().check_end_names = false;
34-
let mut count = criterion::black_box(0);
35+
let mut count = black_box(0);
3536
loop {
3637
match r.read_event() {
3738
Ok(Event::Start(_)) | Ok(Event::Empty(_)) => count += 1,
@@ -52,7 +53,7 @@ fn read_event(c: &mut Criterion) {
5253
let config = r.config_mut();
5354
config.trim_text(true);
5455
config.check_end_names = false;
55-
let mut count = criterion::black_box(0);
56+
let mut count = black_box(0);
5657
loop {
5758
match r.read_event() {
5859
Ok(Event::Start(_)) | Ok(Event::Empty(_)) => count += 1,
@@ -77,7 +78,7 @@ fn read_resolved_event_into(c: &mut Criterion) {
7778
b.iter(|| {
7879
let mut r = NsReader::from_str(SAMPLE);
7980
r.config_mut().check_end_names = false;
80-
let mut count = criterion::black_box(0);
81+
let mut count = black_box(0);
8182
loop {
8283
match r.read_resolved_event() {
8384
Ok((_, Event::Start(_))) | Ok((_, Event::Empty(_))) => count += 1,
@@ -98,7 +99,7 @@ fn read_resolved_event_into(c: &mut Criterion) {
9899
let config = r.config_mut();
99100
config.trim_text(true);
100101
config.check_end_names = false;
101-
let mut count = criterion::black_box(0);
102+
let mut count = black_box(0);
102103
loop {
103104
match r.read_resolved_event() {
104105
Ok((_, Event::Start(_))) | Ok((_, Event::Empty(_))) => count += 1,
@@ -123,7 +124,7 @@ fn one_event(c: &mut Criterion) {
123124
let src = format!(r#"<hello target="{}">"#, "world".repeat(512 / 5));
124125
b.iter(|| {
125126
let mut r = Reader::from_str(&src);
126-
let mut nbtxt = criterion::black_box(0);
127+
let mut nbtxt = black_box(0);
127128
let config = r.config_mut();
128129
config.trim_text(true);
129130
config.check_end_names = false;
@@ -140,7 +141,7 @@ fn one_event(c: &mut Criterion) {
140141
let src = format!(r#"<!-- hello "{}" -->"#, "world".repeat(512 / 5));
141142
b.iter(|| {
142143
let mut r = Reader::from_str(&src);
143-
let mut nbtxt = criterion::black_box(0);
144+
let mut nbtxt = black_box(0);
144145
let config = r.config_mut();
145146
config.trim_text(true);
146147
config.check_end_names = false;
@@ -157,7 +158,7 @@ fn one_event(c: &mut Criterion) {
157158
let src = format!(r#"<![CDATA[hello "{}"]]>"#, "world".repeat(512 / 5));
158159
b.iter(|| {
159160
let mut r = Reader::from_str(&src);
160-
let mut nbtxt = criterion::black_box(0);
161+
let mut nbtxt = black_box(0);
161162
let config = r.config_mut();
162163
config.trim_text(true);
163164
config.check_end_names = false;
@@ -179,7 +180,7 @@ fn attributes(c: &mut Criterion) {
179180
b.iter(|| {
180181
let mut r = Reader::from_str(PLAYERS);
181182
r.config_mut().check_end_names = false;
182-
let mut count = criterion::black_box(0);
183+
let mut count = black_box(0);
183184
loop {
184185
match r.read_event() {
185186
Ok(Event::Empty(e)) => {
@@ -200,7 +201,7 @@ fn attributes(c: &mut Criterion) {
200201
b.iter(|| {
201202
let mut r = Reader::from_str(PLAYERS);
202203
r.config_mut().check_end_names = false;
203-
let mut count = criterion::black_box(0);
204+
let mut count = black_box(0);
204205
loop {
205206
match r.read_event() {
206207
Ok(Event::Empty(e)) => {
@@ -221,7 +222,7 @@ fn attributes(c: &mut Criterion) {
221222
b.iter(|| {
222223
let mut r = Reader::from_str(PLAYERS);
223224
r.config_mut().check_end_names = false;
224-
let mut count = criterion::black_box(0);
225+
let mut count = black_box(0);
225226
loop {
226227
match r.read_event() {
227228
Ok(Event::Empty(e)) if e.name() == QName(b"player") => {
@@ -251,20 +252,20 @@ fn escaping(c: &mut Criterion) {
251252

252253
group.bench_function("no_chars_to_escape_long", |b| {
253254
b.iter(|| {
254-
criterion::black_box(escape(LOREM_IPSUM_TEXT));
255+
black_box(escape(LOREM_IPSUM_TEXT));
255256
})
256257
});
257258

258259
group.bench_function("no_chars_to_escape_short", |b| {
259260
b.iter(|| {
260-
criterion::black_box(escape("just bit of text"));
261+
black_box(escape("just bit of text"));
261262
})
262263
});
263264

264265
group.bench_function("escaped_chars_short", |b| {
265266
b.iter(|| {
266-
criterion::black_box(escape("age > 72 && age < 21"));
267-
criterion::black_box(escape("\"what's that?\""));
267+
black_box(escape("age > 72 && age < 21"));
268+
black_box(escape("\"what's that?\""));
268269
})
269270
});
270271

@@ -285,7 +286,7 @@ volutpat sed cras ornare arcu dui vivamus arcu. Cursus in hac habitasse platea d
285286
purus. Consequat id porta nibh venenatis cras sed felis.";
286287

287288
b.iter(|| {
288-
criterion::black_box(escape(lorem_ipsum_with_escape_chars));
289+
black_box(escape(lorem_ipsum_with_escape_chars));
289290
})
290291
});
291292
group.finish();
@@ -297,31 +298,31 @@ fn unescaping(c: &mut Criterion) {
297298

298299
group.bench_function("no_chars_to_unescape_long", |b| {
299300
b.iter(|| {
300-
criterion::black_box(unescape(LOREM_IPSUM_TEXT)).unwrap();
301+
black_box(unescape(LOREM_IPSUM_TEXT)).unwrap();
301302
})
302303
});
303304

304305
group.bench_function("no_chars_to_unescape_short", |b| {
305306
b.iter(|| {
306-
criterion::black_box(unescape("just a bit of text")).unwrap();
307+
black_box(unescape("just a bit of text")).unwrap();
307308
})
308309
});
309310

310311
group.bench_function("char_reference", |b| {
311312
b.iter(|| {
312313
let text = "prefix &#34;some stuff&#34;,&#x22;more stuff&#x22;";
313-
criterion::black_box(unescape(text)).unwrap();
314+
black_box(unescape(text)).unwrap();
314315
let text = "&#38;&#60;";
315-
criterion::black_box(unescape(text)).unwrap();
316+
black_box(unescape(text)).unwrap();
316317
})
317318
});
318319

319320
group.bench_function("entity_reference", |b| {
320321
b.iter(|| {
321322
let text = "age &gt; 72 &amp;&amp; age &lt; 21";
322-
criterion::black_box(unescape(text)).unwrap();
323+
black_box(unescape(text)).unwrap();
323324
let text = "&quot;what&apos;s that?&quot;";
324-
criterion::black_box(unescape(text)).unwrap();
325+
black_box(unescape(text)).unwrap();
325326
})
326327
});
327328

@@ -342,7 +343,7 @@ volutpat sed cras ornare arcu dui vivamus arcu. Cursus in hac habitasse platea d
342343
purus. Consequat id porta nibh venenatis cras sed felis.";
343344

344345
b.iter(|| {
345-
criterion::black_box(unescape(text)).unwrap();
346+
black_box(unescape(text)).unwrap();
346347
})
347348
});
348349
group.finish();

0 commit comments

Comments
 (0)