Unit tesztek
A tesztnek jelölt részeket (#[test]) csak a --test flag esetén fordítja le
fn return_two() > int {
2
}
#[test]
fn return_two_test() {
let x = return_two();
assert!(x == 2);
}
$ rustc test foo.rs; ./foo
running 1 test
test return_two_test ... ok
test result: ok. 1 passed; 0 failed; 0 ignored; 0 measured
Bencmark-ok
Lehetőség van teljesítmény mérésre
A megjelölt (#[bench]) függvényeket a --test flag esetén is fordítja de nem futtatja. Futtatni csak a --bench flag esetén fogja őket. Kötött szignatúra: mutable BencHarness referenciát kell átvenni
paraméterként.
extern mod extra;
use std::vec;
#[bench]
fn bench_sum_1024_ints(b: &mut
extra::test::BenchHarness) {
let v = vec::from_fn(1024, |n| n);
b.iter(|| {v.iter().fold(0, |old, new| old +
*new);} );
}
#[bench]
fn initialise_a_vector(b: &mut
extra::test::BenchHarness) {
b.iter(|| {vec::from_elem(1024, 0u64);} );
b.bytes = 1024 * 8;
}
> mytests bench
running 2 tests
test bench_sum_1024_ints ... bench:
709 ns/iter (+/ 82)
test initialise_a_vector ... bench:
424 ns/iter (+/ 99) = 19320 MB/s
test result: ok.
0 passed; 0 failed; 0 ignored; 2 measured