1 #![feature(test)] 2 extern crate test; 3 4 use test::Bencher; 5 use uuid::Uuid; 6 7 #[bench] bench_parse_invalid_strings(b: &mut Bencher)8fn bench_parse_invalid_strings(b: &mut Bencher) { 9 b.iter(|| { 10 let _ = Uuid::parse_str(""); 11 let _ = Uuid::parse_str("!"); 12 let _ = Uuid::parse_str("F9168C5E-CEB2-4faa-B6BF-329BF39FA1E45"); 13 let _ = Uuid::parse_str("F9168C5E-CEB2-4faa-BBF-329BF39FA1E4"); 14 let _ = Uuid::parse_str("F9168C5E-CEB2-4faa-BGBF-329BF39FA1E4"); 15 let _ = Uuid::parse_str("F9168C5E-CEB2-4faa-B6BFF329BF39FA1E4"); 16 let _ = Uuid::parse_str("F9168C5E-CEB2-4faa"); 17 let _ = Uuid::parse_str("F9168C5E-CEB2-4faaXB6BFF329BF39FA1E4"); 18 let _ = Uuid::parse_str("F9168C5E-CEB-24fa-eB6BFF32-BF39FA1E4"); 19 let _ = Uuid::parse_str("01020304-1112-2122-3132-41424344"); 20 let _ = Uuid::parse_str("67e5504410b1426f9247bb680e5fe0c88"); 21 let _ = Uuid::parse_str("67e5504410b1426f9247bb680e5fe0cg8"); 22 let _ = Uuid::parse_str("67e5504410b1426%9247bb680e5fe0c8"); 23 24 // Test error reporting 25 let _ = Uuid::parse_str("67e5504410b1426f9247bb680e5fe0c"); 26 let _ = Uuid::parse_str("67e550X410b1426f9247bb680e5fe0cd"); 27 let _ = Uuid::parse_str("67e550-4105b1426f9247bb680e5fe0c"); 28 let _ = Uuid::parse_str("F9168C5E-CEB2-4faa-B6BF1-02BF39FA1E4"); 29 }); 30 } 31 32 #[bench] bench_parse_invalid_len(b: &mut Bencher)33fn bench_parse_invalid_len(b: &mut Bencher) { 34 b.iter(|| { 35 let _ = Uuid::parse_str("F9168C5E-CEB2-4faa-BBF-329BF39FA1E4"); 36 }) 37 } 38 39 #[bench] bench_parse_invalid_character(b: &mut Bencher)40fn bench_parse_invalid_character(b: &mut Bencher) { 41 b.iter(|| { 42 let _ = Uuid::parse_str("F9168C5E-CEB2-4faa-BGBF-329BF39FA1E4"); 43 }) 44 } 45 46 #[bench] bench_parse_invalid_group_len(b: &mut Bencher)47fn bench_parse_invalid_group_len(b: &mut Bencher) { 48 b.iter(|| { 49 let _ = Uuid::parse_str("01020304-1112-2122-3132-41424344"); 50 }); 51 } 52 53 #[bench] bench_parse_invalid_groups(b: &mut Bencher)54fn bench_parse_invalid_groups(b: &mut Bencher) { 55 b.iter(|| { 56 let _ = Uuid::parse_str("F9168C5E-CEB2-4faa-B6BFF329BF39FA1E4"); 57 }); 58 } 59