summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAlan Somers <asomers@gmail.com>2020-05-31 15:35:30 -0600
committerAlan Somers <asomers@gmail.com>2020-05-31 19:07:15 -0600
commitfb76c213edcb0ef8a403ddc03d27d6975afe1a10 (patch)
treeb92cd991da344f348561fc5b21518ae2ceef4abd
parent1ae5dd8b16aed61958fd3ce488ed7fd459743652 (diff)
downloadnix-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.toml2
-rw-r--r--test/test_ptymaster_drop.rs39
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
+ }
}