rust/src/test/run-pass/issue-16671.rs
bors c5142056f7 Auto merge of #22797 - alexcrichton:io-stdio, r=aturon
This is an implementation of RFC 899 and adds stdio functionality to the new
`std::io` module. Details of the API can be found on the RFC, but from a high
level:

* `io::{stdin, stdout, stderr}` constructors are now available. There are also
  `*_raw` variants for unbuffered and unlocked access.
* All handles are globally shared (excluding raw variants).
* The stderr handle is no longer buffered.
* All handles can be explicitly locked (excluding the raw variants).

The `print!` and `println!` machinery has not yet been hooked up to these
streams just yet. The `std::fmt::output` module has also not yet been
implemented as part of this commit.
2015-03-02 07:10:14 +00:00

32 lines
1.0 KiB
Rust

// Copyright 2014 The Rust Project Developers. See the COPYRIGHT
// file at the top-level directory of this distribution and at
// http://rust-lang.org/COPYRIGHT.
//
// Licensed under the Apache License, Version 2.0 <LICENSE-APACHE or
// http://www.apache.org/licenses/LICENSE-2.0> or the MIT license
// <LICENSE-MIT or http://opensource.org/licenses/MIT>, at your
// option. This file may not be copied, modified, or distributed
// except according to those terms.
// DON'T REENABLE THIS UNLESS YOU'VE ACTUALLY FIXED THE UNDERLYING ISSUE
// ignore-android seems to block forever
#![forbid(warnings)]
// Pretty printing tests complain about `use std::predule::*`
#![allow(unused_imports)]
// A var moved into a proc, that has a mutable loan path should
// not trigger a misleading unused_mut warning.
use std::io::prelude::*;
use std::thread;
pub fn main() {
let mut stdin = std::io::stdin();
thread::spawn(move|| {
let mut v = Vec::new();
let _ = stdin.read_to_end(&mut v);
}).join().ok().unwrap();
}