about summary refs log tree commit diff
path: root/tests/ui/write-fmt-errors.rs
diff options
context:
space:
mode:
authorKivooeo <Kivooeo123@gmail.com>2025-07-01 23:33:59 +0500
committerKivooeo <Kivooeo123@gmail.com>2025-07-01 23:33:59 +0500
commit1fb5e0149fb85af0e49fa40329cbc352b4cba861 (patch)
tree99717c06e20c4557a9e4d756a13bbf88d8093966 /tests/ui/write-fmt-errors.rs
parentf46ce66fcc3d6058f90ac5bf0930f940f1e7b0ca (diff)
downloadrust-1fb5e0149fb85af0e49fa40329cbc352b4cba861.tar.gz
rust-1fb5e0149fb85af0e49fa40329cbc352b4cba861.zip
moved tests
Diffstat (limited to 'tests/ui/write-fmt-errors.rs')
-rw-r--r--tests/ui/write-fmt-errors.rs55
1 files changed, 0 insertions, 55 deletions
diff --git a/tests/ui/write-fmt-errors.rs b/tests/ui/write-fmt-errors.rs
deleted file mode 100644
index b48fa3f11cc..00000000000
--- a/tests/ui/write-fmt-errors.rs
+++ /dev/null
@@ -1,55 +0,0 @@
-//@ run-pass
-//@ needs-unwind
-
-#![feature(io_error_uncategorized)]
-
-use std::fmt;
-use std::io::{self, Error, Write};
-use std::panic::catch_unwind;
-
-struct ErrorDisplay;
-
-impl fmt::Display for ErrorDisplay {
-    fn fmt(&self, _: &mut fmt::Formatter) -> fmt::Result {
-        Err(fmt::Error)
-    }
-}
-
-struct ErrorWriter;
-
-const WRITER_ERROR: io::ErrorKind = io::ErrorKind::NotConnected;
-
-impl Write for ErrorWriter {
-    fn write(&mut self, _buf: &[u8]) -> io::Result<usize> {
-        Err(Error::new(WRITER_ERROR, "not connected"))
-    }
-
-    fn flush(&mut self) -> io::Result<()> { Ok(()) }
-}
-
-fn main() {
-    // Test that an underlying error is propagated
-    let res = write!(ErrorWriter, "abc");
-    assert!(res.is_err(), "writer error did not propagate");
-
-    // Test that the error from the formatter is detected.
-    let res = catch_unwind(|| write!(vec![], "{} {} {}", 1, ErrorDisplay, "bar"));
-    let err = res.expect_err("formatter error did not lead to panic").downcast::<&str>().unwrap();
-    assert!(
-        err.contains("formatting trait implementation returned an error"),
-        "unexpected panic: {}", err
-    );
-
-    // Writer error when there's some string before the first `{}`
-    let res = write!(ErrorWriter, "abc {}", ErrorDisplay);
-    assert!(res.is_err(), "writer error did not propagate");
-    assert_eq!(res.unwrap_err().kind(), WRITER_ERROR);
-
-    // Formatter error when the `{}` comes first
-    let res = catch_unwind(|| write!(ErrorWriter, "{} abc", ErrorDisplay));
-    let err = res.expect_err("formatter error did not lead to panic").downcast::<&str>().unwrap();
-    assert!(
-        err.contains("formatting trait implementation returned an error"),
-        "unexpected panic: {}", err
-    );
-}