From fb76c213edcb0ef8a403ddc03d27d6975afe1a10 Mon Sep 17 00:00:00 2001 From: Alan Somers Date: Sun, 31 May 2020 15:35:30 -0600 Subject: Fix test_ptymaster_drop after PR #1098 This test cannot be compiled under Redox. PR #1098 attempted to disable it for Redox, but actually disabled it everywhere. AFAICT, Cargo has no syntax to conditionally enable a target, except based on features. Instead, use conditional compilation within the test. --- Cargo.toml | 2 +- test/test_ptymaster_drop.rs | 39 ++++++++++++++++++++++----------------- 2 files changed, 23 insertions(+), 18 deletions(-) diff --git a/Cargo.toml b/Cargo.toml index e9ce0862..b5c017f7 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -58,6 +58,6 @@ name = "test-mount" path = "test/test_mount.rs" harness = false -[[target.'cfg(not(target_os = "redox"))'.test]] +[[test]] name = "test-ptymaster-drop" path = "test/test_ptymaster_drop.rs" diff --git a/test/test_ptymaster_drop.rs b/test/test_ptymaster_drop.rs index e5da9183..5a5c55d4 100644 --- a/test/test_ptymaster_drop.rs +++ b/test/test_ptymaster_drop.rs @@ -1,19 +1,24 @@ -use nix::fcntl::OFlag; -use nix::pty::*; -use nix::unistd::close; -use std::os::unix::io::AsRawFd; +#[cfg(not(target_os = "redox"))] +mod t { + use nix::fcntl::OFlag; + use nix::pty::*; + use nix::unistd::close; + use std::os::unix::io::AsRawFd; -/// Regression test for Issue #659 -/// `PtyMaster` should panic rather than double close the file descriptor -/// This must run in its own test process because it deliberately creates a race -/// condition. -#[test] -#[should_panic(expected = "Closing an invalid file descriptor!")] -// In Travis on i686-unknown-linux-musl, this test gets SIGABRT. I don't know -// why. It doesn't happen on any other target, and it doesn't happen on my PC. -#[cfg_attr(all(target_env = "musl", target_arch = "x86"), ignore)] -fn test_double_close() { - let m = posix_openpt(OFlag::O_RDWR).unwrap(); - close(m.as_raw_fd()).unwrap(); - drop(m); // should panic here + /// Regression test for Issue #659 + /// + /// `PtyMaster` should panic rather than double close the file descriptor + /// This must run in its own test process because it deliberately creates a + /// race condition. + #[test] + #[should_panic(expected = "Closing an invalid file descriptor!")] + // In Travis on i686-unknown-linux-musl, this test gets SIGABRT. I don't + // know why. It doesn't happen on any other target, and it doesn't happen + // on my PC. + #[cfg_attr(all(target_env = "musl", target_arch = "x86"), ignore)] + fn test_double_close() { + let m = posix_openpt(OFlag::O_RDWR).unwrap(); + close(m.as_raw_fd()).unwrap(); + drop(m); // should panic here + } } -- cgit v1.2.3