Skip to content

Rollup of test cases/comments/cleanup changes #8570

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Closed
wants to merge 13 commits into from
Closed
45 changes: 25 additions & 20 deletions src/libextra/fileinput.rs
Original file line number Diff line number Diff line change
Expand Up @@ -27,7 +27,7 @@ reset once it has been finished, so attempting to iterate on `[None,
None]` will only take input once unless `io::stdin().seek(0, SeekSet)`
is called between.

The `pathify` function handles converting a list of file paths as
The `make_path_option_vec` function handles converting a list of file paths as
strings to the appropriate format, including the (optional) conversion
of `"-"` to `stdin`.

Expand All @@ -42,7 +42,7 @@ to handle any `FileInput` structs. E.g. a simple `cat` program

or a program that numbers lines after concatenating two files

for input_vec_state(pathify([~"a.txt", ~"b.txt"])) |line, state| {
for input_vec_state(make_path_option_vec([~"a.txt", ~"b.txt"])) |line, state| {
io::println(fmt!("%u: %s", state.line_num,
line));
}
Expand Down Expand Up @@ -145,8 +145,14 @@ struct FileInput_ {
previous_was_newline: bool
}

// XXX: remove this when Reader has &mut self. Should be removable via
// "self.fi." -> "self." and renaming FileInput_. Documentation above

// FIXME #5723: remove this when Reader has &mut self.
// Removing it would mean giving read_byte in the Reader impl for
// FileInput &mut self, which in turn means giving most of the
// io::Reader trait methods &mut self. That can't be done right now
// because of io::with_bytes_reader and #5723.
// Should be removable via
// "self.fi" -> "self." and renaming FileInput_. Documentation above
// will likely have to be updated to use `let mut in = ...`.
pub struct FileInput {
fi: @mut FileInput_
Expand Down Expand Up @@ -194,7 +200,7 @@ impl FileInput {
*/
pub fn from_args() -> FileInput {
let args = os::args();
let pathed = pathify(args.tail(), true);
let pathed = make_path_option_vec(args.tail(), true);
FileInput::from_vec(pathed)
}

Expand Down Expand Up @@ -351,8 +357,7 @@ Convert a list of strings to an appropriate form for a `FileInput`
instance. `stdin_hyphen` controls whether `-` represents `stdin` or
a literal `-`.
*/
// XXX: stupid, unclear name
pub fn pathify(vec: &[~str], stdin_hyphen : bool) -> ~[Option<Path>] {
pub fn make_path_option_vec(vec: &[~str], stdin_hyphen : bool) -> ~[Option<Path>] {
vec.iter().map(|str| {
if stdin_hyphen && "-" == *str {
None
Expand Down Expand Up @@ -410,7 +415,7 @@ pub fn input_vec_state(files: ~[Option<Path>],
#[cfg(test)]
mod test {

use super::{FileInput, pathify, input_vec, input_vec_state};
use super::{FileInput, make_path_option_vec, input_vec, input_vec_state};

use std::io;
use std::uint;
Expand All @@ -426,22 +431,22 @@ mod test {
}

#[test]
fn test_pathify() {
fn test_make_path_option_vec() {
let strs = [~"some/path",
~"some/other/path"];
let paths = ~[Some(Path("some/path")),
Some(Path("some/other/path"))];

assert_eq!(pathify(strs, true), paths.clone());
assert_eq!(pathify(strs, false), paths);
assert_eq!(make_path_option_vec(strs, true), paths.clone());
assert_eq!(make_path_option_vec(strs, false), paths);

assert_eq!(pathify([~"-"], true), ~[None]);
assert_eq!(pathify([~"-"], false), ~[Some(Path("-"))]);
assert_eq!(make_path_option_vec([~"-"], true), ~[None]);
assert_eq!(make_path_option_vec([~"-"], false), ~[Some(Path("-"))]);
}

#[test]
fn test_fileinput_read_byte() {
let filenames = pathify(vec::from_fn(
let filenames = make_path_option_vec(vec::from_fn(
3,
|i| fmt!("tmp/lib-fileinput-test-fileinput-read-byte-%u.tmp", i)), true);

Expand Down Expand Up @@ -471,7 +476,7 @@ mod test {

#[test]
fn test_fileinput_read() {
let filenames = pathify(vec::from_fn(
let filenames = make_path_option_vec(vec::from_fn(
3,
|i| fmt!("tmp/lib-fileinput-test-fileinput-read-%u.tmp", i)), true);

Expand All @@ -492,7 +497,7 @@ mod test {
#[test]
fn test_input_vec() {
let mut all_lines = ~[];
let filenames = pathify(vec::from_fn(
let filenames = make_path_option_vec(vec::from_fn(
3,
|i| fmt!("tmp/lib-fileinput-test-input-vec-%u.tmp", i)), true);

Expand All @@ -514,7 +519,7 @@ mod test {

#[test]
fn test_input_vec_state() {
let filenames = pathify(vec::from_fn(
let filenames = make_path_option_vec(vec::from_fn(
3,
|i| fmt!("tmp/lib-fileinput-test-input-vec-state-%u.tmp", i)),true);

Expand All @@ -536,7 +541,7 @@ mod test {

#[test]
fn test_empty_files() {
let filenames = pathify(vec::from_fn(
let filenames = make_path_option_vec(vec::from_fn(
3,
|i| fmt!("tmp/lib-fileinput-test-empty-files-%u.tmp", i)),true);

Expand Down Expand Up @@ -583,7 +588,7 @@ mod test {

#[test]
fn test_next_file() {
let filenames = pathify(vec::from_fn(
let filenames = make_path_option_vec(vec::from_fn(
3,
|i| fmt!("tmp/lib-fileinput-test-next-file-%u.tmp", i)),true);

Expand Down Expand Up @@ -614,7 +619,7 @@ mod test {
#[test]
#[should_fail]
fn test_input_vec_missing_file() {
do input_vec(pathify([~"this/file/doesnt/exist"], true)) |line| {
do input_vec(make_path_option_vec([~"this/file/doesnt/exist"], true)) |line| {
println(line);
true
};
Expand Down
6 changes: 4 additions & 2 deletions src/libextra/flatpipes.rs
Original file line number Diff line number Diff line change
Expand Up @@ -564,8 +564,10 @@ pub mod bytepipes {
}
}

// XXX: Remove `@mut` when this module is ported to the new I/O traits,
// which use `&mut self` properly.
// FIXME #6850: Remove `@mut` when this module is ported to the new I/O traits,
// which use `&mut self` properly. (For example, util::comm::GenericPort's try_recv
// method doesn't use `&mut self`, so the `try_recv` method in the impl of `BytePort`
// for `PipeBytePort` can't have `&mut self` either.)
pub struct PipeBytePort {
port: comm::Port<~[u8]>,
buf: @mut ~[u8]
Expand Down
2 changes: 1 addition & 1 deletion src/libextra/io_util.rs
Original file line number Diff line number Diff line change
Expand Up @@ -30,7 +30,7 @@ impl BufReader {
}

fn as_bytes_reader<A>(&self, f: &fn(&BytesReader) -> A) -> A {
// XXX FIXME(#5723)
// FIXME(#5723)
let bytes = ::std::util::id::<&[u8]>(self.buf);
let bytes: &'static [u8] = unsafe { cast::transmute(bytes) };
// Recreating the BytesReader state every call since
Expand Down
Loading