diff options
author | Alan Somers <asomers@gmail.com> | 2020-05-31 15:35:30 -0600 |
---|---|---|
committer | Alan Somers <asomers@gmail.com> | 2020-05-31 19:07:15 -0600 |
commit | fb76c213edcb0ef8a403ddc03d27d6975afe1a10 (patch) | |
tree | b92cd991da344f348561fc5b21518ae2ceef4abd | |
parent | 1ae5dd8b16aed61958fd3ce488ed7fd459743652 (diff) | |
download | nix-fb76c213edcb0ef8a403ddc03d27d6975afe1a10.zip |
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.
-rw-r--r-- | Cargo.toml | 2 | ||||
-rw-r--r-- | test/test_ptymaster_drop.rs | 39 |
2 files changed, 23 insertions, 18 deletions
@@ -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 + } } |