From 7c5cff717ffb13c8d0b9eb4d287bd2c565a9d7f4 Mon Sep 17 00:00:00 2001 From: "Felix S. Klock II" Date: Fri, 20 Dec 2019 20:55:12 -0500 Subject: [PATCH] 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.) --- .../ui/non-ice-error-on-worker-io-fail.rs | 36 +++++++++++++++++++ .../ui/non-ice-error-on-worker-io-fail.stderr | 6 ++++ 2 files changed, 42 insertions(+) create mode 100644 src/test/ui/non-ice-error-on-worker-io-fail.rs create mode 100644 src/test/ui/non-ice-error-on-worker-io-fail.stderr 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 000000000000..deffb2969b60 --- /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 000000000000..f5601ad03d5d --- /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 +