diff options
| author | Eric Holk <eric.holk@gmail.com> | 2012-08-06 13:17:35 -0700 |
|---|---|---|
| committer | Eric Holk <eric.holk@gmail.com> | 2012-08-06 13:25:34 -0700 |
| commit | c973732a23da75b09dd6d35ce6f951c8bcd6cb01 (patch) | |
| tree | 33c679567201ebb8cc128b3d35d1089c7ff96163 /src | |
| parent | 517ad983f9f5ac7f805dd15cf6c6a156e02e3ec8 (diff) | |
| download | rust-c973732a23da75b09dd6d35ce6f951c8bcd6cb01.tar.gz rust-c973732a23da75b09dd6d35ce6f951c8bcd6cb01.zip | |
Enabling pingpong benchmark.
Diffstat (limited to 'src')
| -rw-r--r-- | src/test/bench/pingpong.rs | 37 |
1 files changed, 21 insertions, 16 deletions
diff --git a/src/test/bench/pingpong.rs b/src/test/bench/pingpong.rs index f9c7d39a259..2a9a20fc07d 100644 --- a/src/test/bench/pingpong.rs +++ b/src/test/bench/pingpong.rs @@ -1,6 +1,5 @@ // Compare bounded and unbounded protocol performance. -// xfail-test // xfail-pretty use std; @@ -33,31 +32,35 @@ proto! pingpong_unbounded { } // This stuff should go in libcore::pipes -macro_rules! move { - { $x:expr } => { unsafe { let y <- *ptr::addr_of($x); y } } +macro_rules! move_it { + { $x:expr } => { let t <- *ptr::addr_of($x); t } } macro_rules! follow { { $($message:path($($x: ident),+) -> $next:ident $e:expr)+ } => ( - |m| alt move(m) { - $(some($message($($x,)* next)) { - let $next = move!{next}; - $e })+ - _ { fail } + |m| alt move m { + $(some($message($($x,)* next)) => { + // FIXME (#2329) use regular move here once move out of + // enums is supported. + let $next = unsafe { move_it!(next) }; + $e })+ + _ => { fail } } ); { $($message:path -> $next:ident $e:expr)+ } => ( - |m| alt move(m) { - $(some($message(next)) { - let $next = move!{next}; + |m| alt move m { + $(some($message(next)) => { + // FIXME (#2329) use regular move here once move out of + // enums is supported. + let $next = unsafe { move_it!(next) }; $e })+ - _ { fail } - } + _ => { fail } + } ) } @@ -66,8 +69,6 @@ fn switch<T: send, Tb: send, U>(+endp: pipes::recv_packet_buffered<T, Tb>, f(pipes::try_recv(endp)) } -fn move<T>(-x: T) -> T { x } - // Here's the benchmark fn bounded(count: uint) { @@ -132,7 +133,11 @@ fn timeit(f: fn()) -> float { } fn main() { - let count = 1000000; + let count = if os::getenv(~"RUST_BENCH").is_some() { + 250000 + } else { + 100 + }; let bounded = do timeit { bounded(count) }; let unbounded = do timeit { unbounded(count) }; |
