Skip to content

Commit 8926b31

Browse files
committed
Add is_utf8 bench tests
Before: is_utf8_ascii: 272.355162 ms is_utf8_multibyte: 167.337334 ms After: is_utf8_ascii: 218.088049 ms is_utf8_multibyte: 134.836722 ms
1 parent 5aee5a1 commit 8926b31

File tree

1 file changed

+24
-0
lines changed

1 file changed

+24
-0
lines changed

src/test/bench/core-std.rs

Lines changed: 24 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -19,6 +19,7 @@ use std::os;
1919
use std::rand::RngUtil;
2020
use std::rand;
2121
use std::result;
22+
use std::str;
2223
use std::uint;
2324
use std::util;
2425
use std::vec;
@@ -36,6 +37,8 @@ fn main() {
3637
bench!(vec_plus);
3738
bench!(vec_append);
3839
bench!(vec_push_all);
40+
bench!(is_utf8_ascii);
41+
bench!(is_utf8_multibyte);
3942
}
4043

4144
fn maybe_run_test(argv: &[~str], name: ~str, test: &fn()) {
@@ -127,3 +130,24 @@ fn vec_push_all() {
127130
}
128131
}
129132
}
133+
134+
fn is_utf8_ascii() {
135+
let mut v : ~[u8] = ~[];
136+
for uint::range(0, 20000) |_| {
137+
v.push('b' as u8);
138+
if !str::is_utf8(v) {
139+
fail!("is_utf8 failed");
140+
}
141+
}
142+
}
143+
144+
fn is_utf8_multibyte() {
145+
let s = "b¢€𤭢";
146+
let mut v : ~[u8]= ~[];
147+
for uint::range(0, 5000) |_| {
148+
v.push_all(s.as_bytes());
149+
if !str::is_utf8(v) {
150+
fail!("is_utf8 failed");
151+
}
152+
}
153+
}

0 commit comments

Comments
 (0)