From c973732a23da75b09dd6d35ce6f951c8bcd6cb01 Mon Sep 17 00:00:00 2001 From: Eric Holk Date: Mon, 6 Aug 2012 13:17:35 -0700 Subject: [PATCH] Enabling pingpong benchmark. --- src/test/bench/pingpong.rs | 37 +++++++++++++++++++++---------------- 1 file 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(+endp: pipes::recv_packet_buffered, f(pipes::try_recv(endp)) } -fn move(-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) };