Ho un file con alcuni benchmark e test e vorrei testare contro stable, beta e nightly. Tuttavia, o non utilizzo il benchmark o la stable/beta si lamentano. C'è un modo per nascondere tutte le parti del benchmark quando si utilizza stable/beta?Ignora benchmark quando si utilizza stable/beta
Come esempio il seguente codice della book:
#![feature(test)]
extern crate test;
pub fn add_two(a: i32) -> i32 {
a + 2
}
#[cfg(test)]
mod tests {
use super::*;
use test::Bencher;
#[test]
fn it_works() {
assert_eq!(4, add_two(2));
}
#[bench]
fn bench_add_two(b: &mut Bencher) {
b.iter(|| add_two(2));
}
}
sto usando rustup e vorrei lo stesso file di lavorare con tutte le costruisce, chiamando qualcosa come:
rustup run nightly cargo bench --bin bench --features "bench"
rustup run nightly cargo test --bin bench --features "bench"
rustup run beta cargo test --bin bench
rustup run stable cargo test --bin bench
Sono stato in grado di nascondere #![feature(test)]
con #![cfg_attr(feature = "bench", feature(test))]
. Posso fare qualcosa di simile al resto delle parti di riferimento? Qual è una buona risorsa per le feature flag?
Hai provato a mettere i benchmark nel loro file (nella cartella 'bench')? –
La cartella 'banchi' sembra funzionare almeno per le librerie. Non sono sicuro di come posso usarlo insieme ad es. funzioni da 'bin/bench.rs'. Ho anche scoperto di scrivere '# [cfg (feature =" bench ")]' di fronte a tutti i lavori relativi al benchmark con il flag '' --features "bench" '. –