From 2f093c67eadbf763601fd195dfc0d3e0c421fe82 Mon Sep 17 00:00:00 2001 From: MoskalykA <100430077+MoskalykA@users.noreply.github.com> Date: Wed, 7 Jun 2023 18:40:25 +0200 Subject: [PATCH 1/3] Move two tests from `tests/ui/std` to `library/std/tests` --- .../std => library/std/tests}/issue-15149.rs | 31 +++---------------- .../std/tests}/switch-stdout.rs | 23 +++++++------- 2 files changed, 16 insertions(+), 38 deletions(-) rename {tests/ui/std => library/std/tests}/issue-15149.rs (52%) rename {tests/ui/std => library/std/tests}/switch-stdout.rs (70%) diff --git a/tests/ui/std/issue-15149.rs b/library/std/tests/issue-15149.rs similarity index 52% rename from tests/ui/std/issue-15149.rs rename to library/std/tests/issue-15149.rs index 064472f5785a1..52e5b55fb9d44 100644 --- a/tests/ui/std/issue-15149.rs +++ b/library/std/tests/issue-15149.rs @@ -1,38 +1,17 @@ -// run-pass - -#![allow(unused_variables)] -// no-prefer-dynamic -// ignore-cross-compile - use std::env; -use std::ffi::OsStr; use std::fs; -use std::path::PathBuf; use std::process; use std::str; -fn main() { - // If we're the child, make sure we were invoked correctly - let args: Vec = env::args().collect(); - if args.len() > 1 && args[1] == "child" { - // FIXME: This should check the whole `args[0]` instead of just - // checking that it ends_with the executable name. This - // is needed because of Windows, which has a different behavior. - // See #15149 for more info. - let my_path = env::current_exe().unwrap(); - return assert_eq!(my_path.file_stem(), Some(OsStr::new("mytest"))); - } - - test(); -} +mod common; -fn test() { +#[test] +fn issue_15149() { // If we're the parent, copy our own binary to a new directory. let my_path = env::current_exe().unwrap(); - let my_dir = my_path.parent().unwrap(); - let child_dir = PathBuf::from(env::var_os("RUST_TEST_TMPDIR").unwrap()); - let child_dir = child_dir.join("issue-15140-child"); + let temp = common::tmpdir(); + let child_dir = temp.join("issue-15140-child"); fs::create_dir_all(&child_dir).unwrap(); let child_path = child_dir.join(&format!("mytest{}", env::consts::EXE_SUFFIX)); diff --git a/tests/ui/std/switch-stdout.rs b/library/std/tests/switch-stdout.rs similarity index 70% rename from tests/ui/std/switch-stdout.rs rename to library/std/tests/switch-stdout.rs index 2d936d96b0596..2f01504043d67 100644 --- a/tests/ui/std/switch-stdout.rs +++ b/library/std/tests/switch-stdout.rs @@ -1,10 +1,7 @@ -// run-pass -// ignore-wasm (needs file descriptors and env variables) - -use std::env; use std::fs::File; use std::io::{Read, Write}; -use std::path::PathBuf; + +mod common; #[cfg(unix)] fn switch_stdout_to(file: File) { @@ -35,16 +32,18 @@ fn switch_stdout_to(file: File) { } } -fn main() { - let path = PathBuf::from(env::var_os("RUST_TEST_TMPDIR").unwrap()); - let path = path.join("switch-stdout-output"); +#[test] +fn switch_stdout() { + let temp = common::tmpdir(); + let path = temp.join("switch-stdout-output"); let f = File::create(&path).unwrap(); - println!("foo"); - std::io::stdout().flush().unwrap(); + let mut stdout = std::io::stdout(); + stdout.write(b"foo\n").unwrap(); + stdout.flush().unwrap(); switch_stdout_to(f); - println!("bar"); - std::io::stdout().flush().unwrap(); + stdout.write(b"bar\n").unwrap(); + stdout.flush().unwrap(); let mut contents = String::new(); File::open(&path).unwrap().read_to_string(&mut contents).unwrap(); From 4227c0a406f31b7a2b2f4423541234d480a66e70 Mon Sep 17 00:00:00 2001 From: MoskalykA <100430077+MoskalykA@users.noreply.github.com> Date: Wed, 7 Jun 2023 21:51:57 +0200 Subject: [PATCH 2/3] Make Unix or Windows mandatory for the `switch-stdout.rs` test --- library/std/tests/switch-stdout.rs | 2 ++ 1 file changed, 2 insertions(+) diff --git a/library/std/tests/switch-stdout.rs b/library/std/tests/switch-stdout.rs index 2f01504043d67..28ce6dfccd35a 100644 --- a/library/std/tests/switch-stdout.rs +++ b/library/std/tests/switch-stdout.rs @@ -1,3 +1,5 @@ +#[cfg(any(target_family = "unix", target_family = "windows"))] + use std::fs::File; use std::io::{Read, Write}; From 48e7f3e313c19d8df1a05f0ccc17ac02e41dda6a Mon Sep 17 00:00:00 2001 From: MoskalykA <100430077+MoskalykA@users.noreply.github.com> Date: Wed, 26 Jul 2023 15:07:57 +0200 Subject: [PATCH 3/3] Have a better file name than just the issue id --- library/std/tests/{issue-15149.rs => process_spawning.rs} | 0 1 file changed, 0 insertions(+), 0 deletions(-) rename library/std/tests/{issue-15149.rs => process_spawning.rs} (100%) diff --git a/library/std/tests/issue-15149.rs b/library/std/tests/process_spawning.rs similarity index 100% rename from library/std/tests/issue-15149.rs rename to library/std/tests/process_spawning.rs