1
1
#![ feature( test) ]
2
2
#![ allow( dead_code) ]
3
3
#![ allow( unused_imports) ]
4
+ #![ feature( custom_test_frameworks) ]
5
+ #![ test_runner( criterion:: runner) ]
4
6
5
7
extern crate test;
6
8
9
+ use criterion:: { black_box, Criterion } ;
10
+ use criterion_macro:: criterion;
7
11
use rustybuzz:: ttf_parser:: Tag ;
8
12
9
13
struct CustomVariation {
@@ -29,34 +33,34 @@ macro_rules! simple_bench {
29
33
use super :: * ;
30
34
use test:: Bencher ;
31
35
32
- #[ bench ]
33
- fn rb( bencher : & mut Bencher ) {
36
+ #[ criterion ]
37
+ fn rb( c : & mut Criterion ) {
34
38
let font_data = std:: fs:: read( $font_path) . unwrap( ) ;
35
39
let text = std:: fs:: read_to_string( $text_path) . unwrap( ) . trim( ) . to_string( ) ;
36
- bencher. iter( || {
37
- test:: black_box( {
38
- let face = rustybuzz:: Face :: from_slice( & font_data, 0 ) . unwrap( ) ;
39
- let mut buffer = rustybuzz:: UnicodeBuffer :: new( ) ;
40
- buffer. push_str( & text) ;
41
- buffer. reset_clusters( ) ;
42
- rustybuzz:: shape( & face, & [ ] , buffer) ;
43
- } ) ;
44
- } )
45
- }
46
40
47
- #[ cfg( feature = "hb" ) ]
48
- #[ bench]
49
- fn hb( bencher: & mut Bencher ) {
50
- let font_data = std:: fs:: read( $font_path) . unwrap( ) ;
51
- let text = std:: fs:: read_to_string( $text_path) . unwrap( ) . trim( ) . to_string( ) ;
52
- bencher. iter( || {
53
- test:: black_box( {
54
- let face = harfbuzz_rs:: Face :: from_bytes( & font_data, 0 ) ;
55
- let font = harfbuzz_rs:: Font :: new( face) ;
41
+ c. bench_function( & format!( "{}::{}" , module_path!( ) , "rb" ) , |bencher| {
42
+ let face = rustybuzz:: Face :: from_slice( & font_data, 0 ) . unwrap( ) ;
43
+
44
+ bencher. iter( || {
45
+ black_box( {
46
+ let mut buffer = rustybuzz:: UnicodeBuffer :: new( ) ;
47
+ buffer. push_str( & text) ;
48
+ buffer. reset_clusters( ) ;
49
+ rustybuzz:: shape( & face, & [ ] , buffer) ;
50
+ } ) ;
51
+ } )
52
+ } ) ;
53
+
54
+ #[ cfg( feature = "hb" ) ]
55
+ c. bench_function( & format!( "{}::{}" , module_path!( ) , "hb" ) , |bencher| {
56
+ let face = harfbuzz_rs:: Face :: from_bytes( & font_data, 0 ) ;
57
+ let font = harfbuzz_rs:: Font :: new( face) ;
58
+
59
+ bencher. iter( || {
56
60
let buffer = harfbuzz_rs:: UnicodeBuffer :: new( ) . add_str( & text) ;
57
- harfbuzz_rs:: shape( & font, buffer, & [ ] )
58
- } ) ;
59
- } )
61
+ black_box ( { harfbuzz_rs:: shape( & font, buffer, & [ ] ) } ) ;
62
+ } )
63
+ } ) ;
60
64
}
61
65
}
62
66
} ;
@@ -67,36 +71,35 @@ macro_rules! simple_bench {
67
71
use super :: * ;
68
72
use test:: Bencher ;
69
73
70
- #[ bench]
71
- fn rb( bencher: & mut Bencher ) {
72
- let font_data = std:: fs:: read( $font_path) . unwrap( ) ;
73
- let text = std:: fs:: read_to_string( $text_path) . unwrap( ) . trim( ) . to_string( ) ;
74
- bencher. iter( || {
75
- test:: black_box( {
76
- let mut face = rustybuzz:: Face :: from_slice( & font_data, 0 ) . unwrap( ) ;
77
- face. set_variations( $variations) ;
78
- let mut buffer = rustybuzz:: UnicodeBuffer :: new( ) ;
79
- buffer. push_str( & text) ;
80
- buffer. reset_clusters( ) ;
81
- rustybuzz:: shape( & face, & [ ] , buffer) ;
82
- } ) ;
83
- } )
84
- }
85
-
86
- #[ cfg( feature = "hb" ) ]
87
- #[ bench]
88
- fn hb( bencher: & mut Bencher ) {
74
+ #[ criterion]
75
+ fn rb( c: & mut Criterion ) {
89
76
let font_data = std:: fs:: read( $font_path) . unwrap( ) ;
90
77
let text = std:: fs:: read_to_string( $text_path) . unwrap( ) . trim( ) . to_string( ) ;
91
- bencher. iter( || {
92
- test:: black_box( {
93
- let face = harfbuzz_rs:: Face :: from_bytes( & font_data, 0 ) ;
94
- let mut font = harfbuzz_rs:: Font :: new( face) ;
95
- font. set_variations( $variations) ;
78
+ c. bench_function( & format!( "{}::{}" , module_path!( ) , "rb" ) , |bencher| {
79
+ let mut face = rustybuzz:: Face :: from_slice( & font_data, 0 ) . unwrap( ) ;
80
+ face. set_variations( $variations) ;
81
+
82
+ bencher. iter( || {
83
+ black_box( {
84
+ let mut buffer = rustybuzz:: UnicodeBuffer :: new( ) ;
85
+ buffer. push_str( & text) ;
86
+ buffer. reset_clusters( ) ;
87
+ rustybuzz:: shape( & face, & [ ] , buffer) ;
88
+ } ) ;
89
+ } )
90
+ } ) ;
91
+
92
+ #[ cfg( feature = "hb" ) ]
93
+ c. bench_function( & format!( "{}::{}" , module_path!( ) , "hb" ) , |bencher| {
94
+ let face = harfbuzz_rs:: Face :: from_bytes( & font_data, 0 ) ;
95
+ let mut font = harfbuzz_rs:: Font :: new( face) ;
96
+ font. set_variations( $variations) ;
97
+
98
+ bencher. iter( || {
96
99
let buffer = harfbuzz_rs:: UnicodeBuffer :: new( ) . add_str( & text) ;
97
- harfbuzz_rs:: shape( & font, buffer, & [ ] )
98
- } ) ;
99
- } )
100
+ black_box ( { harfbuzz_rs:: shape( & font, buffer, & [ ] ) } ) ;
101
+ } )
102
+ } ) ;
100
103
}
101
104
}
102
105
} ;
0 commit comments