about summary refs log tree commit diff
diff options
context:
space:
mode:
authorFelix S. Klock II <pnkfelix@pnkfx.org>2019-12-20 20:55:12 -0500
committerFelix S. Klock II <pnkfelix@pnkfx.org>2019-12-31 00:04:17 -0500
commit7c5cff717ffb13c8d0b9eb4d287bd2c565a9d7f4 (patch)
treee752fc5ef35e75c6a975a77d91ba4589ab7a25b3
parent0435c1b0a5fbc0cbaef8cb9f1711d3e30c944781 (diff)
downloadrust-7c5cff717ffb13c8d0b9eb4d287bd2c565a9d7f4.tar.gz
rust-7c5cff717ffb13c8d0b9eb4d287bd2c565a9d7f4.zip
regression test for 66530.
it uses normalize-stderr-test because not all targets hit the same OS error number nor message ...

... and ignores tidy since I dont know how to make the normalize line shorter ...

and has effectively a no-op for its error-pattern because the targets' error
messages are so wildly different (and the error-pattern check occurs *before*
stderr normalization.)
-rw-r--r--src/test/ui/non-ice-error-on-worker-io-fail.rs36
-rw-r--r--src/test/ui/non-ice-error-on-worker-io-fail.stderr6
2 files changed, 42 insertions, 0 deletions
diff --git a/src/test/ui/non-ice-error-on-worker-io-fail.rs b/src/test/ui/non-ice-error-on-worker-io-fail.rs
new file mode 100644
index 00000000000..deffb2969b6
--- /dev/null
+++ b/src/test/ui/non-ice-error-on-worker-io-fail.rs
@@ -0,0 +1,36 @@
+// Issue #66530: We would ICE if someone compiled with `-o /dev/null`,
+// because we would try to generate auxiliary files in `/dev/` (which
+// at least the OS X file system rejects).
+//
+// An attempt to `-o` into a directory we cannot write into should indeed
+// be an error; but not an ICE.
+
+// compile-flags: -o /dev/null
+
+// The error-pattern check occurs *before* normalization, and the error patterns
+// are wildly different between build environments. So this is a cop-out (and we
+// rely on the checking of the normalized stderr output as our actual
+// "verification" of the diagnostic).
+
+// error-pattern: error
+
+// On Mac OS X, we get an error like the below
+// normalize-stderr-test "failed to write bytecode to /dev/null.non_ice_error_on_worker_io_fail.*" -> "io error modifying /dev/"
+
+// On Linux, we get an error like the below
+// normalize-stderr-test "couldn't create a temp dir.*" -> "io error modifying /dev/"
+
+// ignore-tidy-linelength
+// ignore-windows - this is a unix-specific test
+// ignore-emscripten - the file-system issues do not replicate here
+// ignore-wasm - the file-system issues do not replicate here
+
+#![crate_type="lib"]
+
+#![cfg_attr(not(feature = "std"), no_std)]
+pub mod task {
+    pub mod __internal {
+        use crate::task::Waker;
+    }
+    pub use core::task::Waker;
+}
diff --git a/src/test/ui/non-ice-error-on-worker-io-fail.stderr b/src/test/ui/non-ice-error-on-worker-io-fail.stderr
new file mode 100644
index 00000000000..f5601ad03d5
--- /dev/null
+++ b/src/test/ui/non-ice-error-on-worker-io-fail.stderr
@@ -0,0 +1,6 @@
+warning: ignoring --out-dir flag due to -o flag
+
+error: io error modifying /dev/
+
+error: aborting due to previous error
+