Skip to content

Commit

Permalink
De-realstd os::args
Browse files Browse the repository at this point in the history
With the test runner using ::std::os::args(), and std::std::os now being
a re-export of realstd::os, there's no more need for realstd stuff
mucking up rt::args.

Remove the one test of os::args(), as it's not very useful and it won't
work anymore now that rt::args doesn't use realstd.
  • Loading branch information
lilyball committed May 25, 2014
1 parent 69070ac commit 009d898
Show file tree
Hide file tree
Showing 2 changed files with 8 additions and 48 deletions.
15 changes: 1 addition & 14 deletions src/libstd/os.rs
Expand Up @@ -918,17 +918,10 @@ extern "system" {
///
/// The arguments are interpreted as utf-8, with invalid bytes replaced with \uFFFD.
/// See `str::from_utf8_lossy` for details.
#[cfg(not(test))]
pub fn args() -> Vec<String> {
real_args()
}

#[cfg(test)]
#[allow(missing_doc)]
pub fn args() -> ::realstd::vec::Vec<::realstd::string::String> {
::realstd::os::args()
}

/// Returns the arguments which this program was started with (normally passed
/// via the command line) as byte vectors.
pub fn args_as_bytes() -> Vec<Vec<u8>> {
Expand Down Expand Up @@ -1507,7 +1500,7 @@ mod tests {
use prelude::*;
use c_str::ToCStr;
use option;
use os::{env, getcwd, getenv, make_absolute, args};
use os::{env, getcwd, getenv, make_absolute};
use os::{setenv, unsetenv};
use os;
use rand::Rng;
Expand All @@ -1518,12 +1511,6 @@ mod tests {
debug!("{}", os::last_os_error());
}

#[test]
pub fn test_args() {
let a = args();
assert!(a.len() >= 1);
}

fn make_rand_name() -> String {
let mut rng = rand::task_rng();
let n = format_strbuf!("TEST{}", rng.gen_ascii_str(10u).as_slice());
Expand Down
41 changes: 7 additions & 34 deletions src/libstd/rt/args.rs
Expand Up @@ -22,47 +22,23 @@

use option::Option;
use vec::Vec;
#[cfg(test)] use option::{Some, None};
#[cfg(test)] use realstd;
#[cfg(test)] use realargs = realstd::rt::args;

/// One-time global initialization.
#[cfg(not(test))]
pub unsafe fn init(argc: int, argv: **u8) { imp::init(argc, argv) }
#[cfg(test)]
pub unsafe fn init(argc: int, argv: **u8) { realargs::init(argc, argv) }

/// One-time global cleanup.
#[cfg(not(test))] pub unsafe fn cleanup() { imp::cleanup() }
#[cfg(test)] pub unsafe fn cleanup() { realargs::cleanup() }
pub unsafe fn cleanup() { imp::cleanup() }

/// Take the global arguments from global storage.
#[cfg(not(test))] pub fn take() -> Option<Vec<Vec<u8>>> { imp::take() }
#[cfg(test)] pub fn take() -> Option<Vec<Vec<u8>>> {
match realargs::take() {
realstd::option::Some(v) => Some(unsafe{ ::mem::transmute(v) }),
realstd::option::None => None,
}
}
pub fn take() -> Option<Vec<Vec<u8>>> { imp::take() }

/// Give the global arguments to global storage.
///
/// It is an error if the arguments already exist.
#[cfg(not(test))] pub fn put(args: Vec<Vec<u8>>) { imp::put(args) }
#[cfg(test)] pub fn put(args: Vec<Vec<u8>>) {
realargs::put(unsafe {
::mem::transmute(args)
})
}
pub fn put(args: Vec<Vec<u8>>) { imp::put(args) }

/// Make a clone of the global arguments.
#[cfg(not(test))] pub fn clone() -> Option<Vec<Vec<u8>>> { imp::clone() }
#[cfg(test)] pub fn clone() -> Option<Vec<Vec<u8>>> {
match realargs::clone() {
realstd::option::Some(v) => Some(unsafe { ::mem::transmute(v) }),
realstd::option::None => None,
}
}
pub fn clone() -> Option<Vec<Vec<u8>>> { imp::clone() }

#[cfg(target_os = "linux")]
#[cfg(target_os = "android")]
Expand All @@ -75,18 +51,16 @@ mod imp {
use unstable::mutex::{StaticNativeMutex, NATIVE_MUTEX_INIT};
use mem;
use vec::Vec;
#[cfg(not(test))] use ptr::RawPtr;
use ptr::RawPtr;

static mut global_args_ptr: uint = 0;
static mut lock: StaticNativeMutex = NATIVE_MUTEX_INIT;

#[cfg(not(test))]
pub unsafe fn init(argc: int, argv: **u8) {
let args = load_argc_and_argv(argc, argv);
put(args);
}

#[cfg(not(test))]
pub unsafe fn cleanup() {
rtassert!(take().is_some());
lock.destroy();
Expand Down Expand Up @@ -127,7 +101,6 @@ mod imp {
}

// Copied from `os`.
#[cfg(not(test))]
unsafe fn load_argc_and_argv(argc: int, argv: **u8) -> Vec<Vec<u8>> {
use c_str::CString;
use ptr::RawPtr;
Expand Down Expand Up @@ -173,8 +146,8 @@ mod imp {
}
}

#[cfg(target_os = "macos", not(test))]
#[cfg(target_os = "win32", not(test))]
#[cfg(target_os = "macos")]
#[cfg(target_os = "win32")]
mod imp {
use option::Option;
use vec::Vec;
Expand Down

5 comments on commit 009d898

@bors
Copy link
Contributor

@bors bors commented on 009d898 May 26, 2014

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

saw approval from alexcrichton
at lilyball@009d898

@bors
Copy link
Contributor

@bors bors commented on 009d898 May 26, 2014

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

merging kballard/rust/squelch_os_warning = 009d898 into auto

@bors
Copy link
Contributor

@bors bors commented on 009d898 May 26, 2014

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

kballard/rust/squelch_os_warning = 009d898 merged ok, testing candidate = 20a4151

@bors
Copy link
Contributor

@bors bors commented on 009d898 May 26, 2014

@bors
Copy link
Contributor

@bors bors commented on 009d898 May 26, 2014

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

fast-forwarding master to auto = 20a4151

Please sign in to comment.