diff options
Diffstat (limited to 'src/libstd/rt')
| -rw-r--r-- | src/libstd/rt/mod.rs | 4 | ||||
| -rw-r--r-- | src/libstd/rt/util.rs | 14 |
2 files changed, 17 insertions, 1 deletions
diff --git a/src/libstd/rt/mod.rs b/src/libstd/rt/mod.rs index daf18346fee..d2131ad44fb 100644 --- a/src/libstd/rt/mod.rs +++ b/src/libstd/rt/mod.rs @@ -76,6 +76,10 @@ pub use self::util::{Stdio, Stdout, Stderr}; pub use alloc::{heap, libc_heap}; +// Used by I/O tests +#[experimental] +pub use self::util::running_on_valgrind; + // FIXME: these probably shouldn't be public... #[doc(hidden)] pub mod shouldnt_be_public { diff --git a/src/libstd/rt/util.rs b/src/libstd/rt/util.rs index 1ab9ac1b11e..103fbdc0bc9 100644 --- a/src/libstd/rt/util.rs +++ b/src/libstd/rt/util.rs @@ -15,11 +15,11 @@ use io::IoResult; use io; use iter::Iterator; use libc; +use libc::uintptr_t; use option::{Some, None, Option}; use os; use result::Ok; use str::{Str, StrSlice}; -use unstable::running_on_valgrind; use slice::ImmutableVector; // Indicates whether we should perform expensive sanity checks, including rtassert! @@ -162,3 +162,15 @@ memory and partly incapable of presentation to others.", unsafe { intrinsics::abort() } } } + +/// Dynamically inquire about whether we're running under V. +/// You should usually not use this unless your test definitely +/// can't run correctly un-altered. Valgrind is there to help +/// you notice weirdness in normal, un-doctored code paths! +pub fn running_on_valgrind() -> bool { + unsafe { rust_running_on_valgrind() != 0 } +} + +extern { + fn rust_running_on_valgrind() -> uintptr_t; +} |
