io: add `Ready::ERROR` and report error readiness
## Motivation

fixes #5716

The motivation is to await messages arriving in a UdpSocket's error queue. The error queue is a mechanism to asynchronously process errors on a socket. By separating them from the normal queue, error information does not interfere with standard IO, but at the same time better error messages can be given than just a single integer as the result of send/receive.

This potentially has many use cases. My particular one is awaiting when a send timestamp is available.

## Solution

The solution is to provide `Ready::ERROR`. This is already supported in `mio`, but so far was not exposed in tokio. In combination with `AsyncFd::ready` with some arbitrary interest, this can be used to await error readiness.

One potentially controversial change is that error readiness is reported regardless of interest. That is in practice how error readiness works on operating systems: errors are always reported, no matter what the configured interest is.

```rust
            // error readiness is reported regardless of interest
            ready |= Ready::ERROR;
```

### Testing

Send timestamping, my primary use case, only works on linux. I've provided a test for it, but it is only compiled/executed on linux.

I've also included a test that sends a UDP packet to a local socket where nobody is listening. Normally this send operation would just succeed, but by setting the `IP_RECVERR` socket option, the sending socket is notified via the error queue that there is nobody listening on the other side. Turns out this test also only works on linux.

I'm not sure what to do about other operating systems. because we're just re-exposing mio functionality here maybe it's fine to just have the linux tests on CI?


**Is your feature request related to a problem? Please describe.**

I work on [ntpd-rs](https://github.com/pendulum-project/ntpd-rs), an NTP implementation in rust. A big part of how it works is to configure a UDP socket to record timestamps when a message is sent or received, and then retrieving these timestamps. The timestamp is not available immediately (we've observed this for external hardware clocks, software timestamps do seem to be effectively instant).

These timestaps end up in the error queue (libc::MSG_ERRQUEUE) of the socket. Tokio does not have a way to await or read these messages currently. The reading of these messages is probably too low-level for tokio, but being able to await the messages appearing would be extremely useful. 

**Describe the solution you'd like**

With https://github.com/tokio-rs/tokio/pull/5566 heading in a promising direction, I think from a user perspective, the best API would be

```rust
let socket: AsyncFd<std::net::UdpSocket> = ...;

loop { 
    let mut guard = socket.ready(Interest::ERROR).await?;

    if guard.ready().is_error() {
        match read_from_error_queue(socket.get_ref()) {
            Ok(msg) => {
                println!("read {msg}");
            }
            Err(ref e) if e.kind() == io::ErrorKind::WouldBlock => {
                guard.clear_ready_exact(Ready::ERROR);
                continue;
            }
            Err(e) => {
                return Err(e.into());
            }
        }
    }
}
```

Adding `Ready::ERROR` is straightforward. But adding an error interest is really not. Currently, a tokio interest is just a wrapper around the `mio::Interest`:

```rust
pub struct Interest(mio::Interest);

impl Interest {
    /// Interest in all readable events.
    ///
    /// Readable interest includes read-closed events.
    pub const READABLE: Interest = Interest(mio::Interest::READABLE);

    ...
```

But `mio::Interest::ERROR` does not exist, with a good reason: the error "interest" is always registered by the OS (see  https://github.com/tokio-rs/mio/issues/1672#issuecomment-1553456643). Therefore (not) using `mio::Interest::ERROR` would have no effect either way, and would be confusing.

But for public tokio APIs, the interest is specifically what you listen for, and hence what you'll be notified for. That would mean that tokio would have to implement `Interest` itself (sort of inlining the mio implementation). I don't see any technical issues with that approach, and I don't think there are performance downsides really: all of the logic to convert to `mio::Interest` could use `const fn`. 

But it's kind of inelegant because it duplicates a bunch of logic from mio, and increases maintenance burden and the change of inconsistencies. I'd say it's worth it, but there is a cost.

**Describe alternatives you've considered**

Another option would be to always include the error readiness, like mio:

```rust
impl Ready { 
    pub(crate) fn from_interest(interest: Interest) -> Ready {
        let mut ready = Ready::EMPTY;

        if interest.is_readable() {
            ready |= Ready::READABLE;
            ready |= Ready::READ_CLOSED;
        }

        // ...

        // just always include the error readiness
        ready |= Ready::ERROR

        ready
    }
}
```

this would sort of work, but it's extremely inelegant. The example from earlier would have to pick a different, arbitrary `Interest`, and then just ignore this interest and just see if the readiness includes the error flag.

```rust
loop { 
    let mut guard = socket.ready(Interest::READABLE).await?;

    if guard.ready().is_error() {
        // ...
    }
}
```

I also think this will lead to problems with e.g. `readable` firing but a read stil blocking. Code should be robust against that, but it's still inefficient to read when we know it would block.

**Additional context**

The error queue is used for many things besides timestamps. Here is [an example](https://gist.github.com/folkertdev/9bb8abeb5fcd7f32a8bfdc86f2a6fc3b) that puts a explicitly puts a message on the error queue. It may come in handy for testing. The examples that I know of are all from unix systems, but I don't see any harm in exposing error readiness across platforms (mio already supports it anyway). 

I'm happy to work on this, but would like some confirmation on this path not being totally unreasonable before starting. 

Wait for messages in the error queue
diff --git a/tokio/src/io/interest.rs b/tokio/src/io/interest.rs
index 3a39cf761b7..9256bd238da 100644
--- a/tokio/src/io/interest.rs
+++ b/tokio/src/io/interest.rs
@@ -5,13 +5,28 @@ use crate::io::ready::Ready;
 use std::fmt;
 use std::ops;
 
+// These must be unique.
+// same as mio
+const READABLE: usize = 0b0001;
+const WRITABLE: usize = 0b0010;
+// The following are not available on all platforms.
+#[cfg(target_os = "freebsd")]
+const AIO: usize = 0b0100;
+#[cfg(target_os = "freebsd")]
+const LIO: usize = 0b1000;
+#[cfg(any(target_os = "linux", target_os = "android"))]
+const PRIORITY: usize = 0b0001_0000;
+// error is available on all platforms, but behavior is platform-specific
+// mio does not have this interest
+const ERROR: usize = 0b0010_0000;
+
 /// Readiness event interest.
 ///
 /// Specifies the readiness events the caller is interested in when awaiting on
 /// I/O resource readiness states.
 #[cfg_attr(docsrs, doc(cfg(feature = "net")))]
 #[derive(Clone, Copy, Eq, PartialEq)]
-pub struct Interest(mio::Interest);
+pub struct Interest(usize);
 
 impl Interest {
     // The non-FreeBSD definitions in this block are active only when
@@ -19,35 +34,41 @@ impl Interest {
     cfg_aio! {
         /// Interest for POSIX AIO.
         #[cfg(target_os = "freebsd")]
-        pub const AIO: Interest = Interest(mio::Interest::AIO);
+        pub const AIO: Interest = Interest(AIO);
 
         /// Interest for POSIX AIO.
         #[cfg(not(target_os = "freebsd"))]
-        pub const AIO: Interest = Interest(mio::Interest::READABLE);
+        pub const AIO: Interest = Interest(READABLE);
 
         /// Interest for POSIX AIO lio_listio events.
         #[cfg(target_os = "freebsd")]
-        pub const LIO: Interest = Interest(mio::Interest::LIO);
+        pub const LIO: Interest = Interest(LIO);
 
         /// Interest for POSIX AIO lio_listio events.
         #[cfg(not(target_os = "freebsd"))]
-        pub const LIO: Interest = Interest(mio::Interest::READABLE);
+        pub const LIO: Interest = Interest(READABLE);
     }
 
     /// Interest in all readable events.
     ///
     /// Readable interest includes read-closed events.
-    pub const READABLE: Interest = Interest(mio::Interest::READABLE);
+    pub const READABLE: Interest = Interest(READABLE);
 
     /// Interest in all writable events.
     ///
     /// Writable interest includes write-closed events.
-    pub const WRITABLE: Interest = Interest(mio::Interest::WRITABLE);
+    pub const WRITABLE: Interest = Interest(WRITABLE);
+
+    /// Interest in error events.
+    ///
+    /// Passes error interest to the underlying OS selector.
+    /// Behavior is platform-specific, read your platform's documentation.
+    pub const ERROR: Interest = Interest(ERROR);
 
     /// Returns a `Interest` set representing priority completion interests.
     #[cfg(any(target_os = "linux", target_os = "android"))]
     #[cfg_attr(docsrs, doc(cfg(any(target_os = "linux", target_os = "android"))))]
-    pub const PRIORITY: Interest = Interest(mio::Interest::PRIORITY);
+    pub const PRIORITY: Interest = Interest(PRIORITY);
 
     /// Returns true if the value includes readable interest.
     ///
@@ -63,7 +84,7 @@ impl Interest {
     /// assert!(both.is_readable());
     /// ```
     pub const fn is_readable(self) -> bool {
-        self.0.is_readable()
+        self.0 & READABLE != 0
     }
 
     /// Returns true if the value includes writable interest.
@@ -80,7 +101,34 @@ impl Interest {
     /// assert!(both.is_writable());
     /// ```
     pub const fn is_writable(self) -> bool {
-        self.0.is_writable()
+        self.0 & WRITABLE != 0
+    }
+
+    /// Returns true if the value includes error interest.
+    ///
+    /// # Examples
+    ///
+    /// ```
+    /// use tokio::io::Interest;
+    ///
+    /// assert!(Interest::ERROR.is_error());
+    /// assert!(!Interest::WRITABLE.is_error());
+    ///
+    /// let combined = Interest::READABLE | Interest::ERROR;
+    /// assert!(combined.is_error());
+    /// ```
+    pub const fn is_error(self) -> bool {
+        self.0 & ERROR != 0
+    }
+
+    #[cfg(target_os = "freebsd")]
+    const fn is_aio(self) -> bool {
+        self.0 & AIO != 0
+    }
+
+    #[cfg(target_os = "freebsd")]
+    const fn is_lio(self) -> bool {
+        self.0 & LIO != 0
     }
 
     /// Returns true if the value includes priority interest.
@@ -99,7 +147,7 @@ impl Interest {
     #[cfg(any(target_os = "linux", target_os = "android"))]
     #[cfg_attr(docsrs, doc(cfg(any(target_os = "linux", target_os = "android"))))]
     pub const fn is_priority(self) -> bool {
-        self.0.is_priority()
+        self.0 & PRIORITY != 0
     }
 
     /// Add together two `Interest` values.
@@ -116,12 +164,60 @@ impl Interest {
     /// assert!(BOTH.is_readable());
     /// assert!(BOTH.is_writable());
     pub const fn add(self, other: Interest) -> Interest {
-        Interest(self.0.add(other.0))
+        Self(self.0 | other.0)
     }
 
     // This function must be crate-private to avoid exposing a `mio` dependency.
-    pub(crate) const fn to_mio(self) -> mio::Interest {
-        self.0
+    pub(crate) fn to_mio(self) -> mio::Interest {
+        fn mio_add(wrapped: &mut Option<mio::Interest>, add: mio::Interest) {
+            match wrapped {
+                Some(inner) => *inner |= add,
+                None => *wrapped = Some(add),
+            }
+        }
+
+        // mio does not allow and empty interest, so use None for empty
+        let mut mio = None;
+
+        if self.is_readable() {
+            mio_add(&mut mio, mio::Interest::READABLE);
+        }
+
+        if self.is_writable() {
+            mio_add(&mut mio, mio::Interest::WRITABLE);
+        }
+
+        #[cfg(any(target_os = "linux", target_os = "android"))]
+        if self.is_priority() {
+            mio_add(&mut mio, mio::Interest::PRIORITY);
+        }
+
+        #[cfg(target_os = "freebsd")]
+        if self.is_aio() {
+            mio_add(&mut mio, mio::Interest::AIO);
+        }
+
+        #[cfg(target_os = "freebsd")]
+        if self.is_lio() {
+            mio_add(&mut mio, mio::Interest::LIO);
+        }
+
+        if self.is_error() {
+            // There is no error interest in mio, because error events are always reported.
+            // But mio interests cannot be empty and an interest is needed just for the registeration.
+            //
+            // read readiness is filtered out in `Interest::mask` or `Ready::from_interest` if
+            // the read interest was not specified by the user.
+            mio_add(&mut mio, mio::Interest::READABLE);
+        }
+
+        // the default `mio::Interest::READABLE` should never be used in practice. Either
+        //
+        // - at least one tokio interest with a mio counterpart was used
+        // - only the error tokio interest was specified
+        //
+        // in both cases, `mio` is Some already
+        mio.unwrap_or(mio::Interest::READABLE)
     }
 
     pub(crate) fn mask(self) -> Ready {
@@ -130,6 +226,7 @@ impl Interest {
             Interest::WRITABLE => Ready::WRITABLE | Ready::WRITE_CLOSED,
             #[cfg(any(target_os = "linux", target_os = "android"))]
             Interest::PRIORITY => Ready::PRIORITY | Ready::READ_CLOSED,
+            Interest::ERROR => Ready::ERROR,
             _ => Ready::EMPTY,
         }
     }
@@ -147,12 +244,67 @@ impl ops::BitOr for Interest {
 impl ops::BitOrAssign for Interest {
     #[inline]
     fn bitor_assign(&mut self, other: Self) {
-        self.0 = (*self | other).0;
+        *self = *self | other
     }
 }
 
 impl fmt::Debug for Interest {
     fn fmt(&self, fmt: &mut fmt::Formatter<'_>) -> fmt::Result {
-        self.0.fmt(fmt)
+        let mut separator = false;
+
+        if self.is_readable() {
+            if separator {
+                write!(fmt, " | ")?;
+            }
+            write!(fmt, "READABLE")?;
+            separator = true;
+        }
+
+        if self.is_writable() {
+            if separator {
+                write!(fmt, " | ")?;
+            }
+            write!(fmt, "WRITABLE")?;
+            separator = true;
+        }
+
+        #[cfg(any(target_os = "linux", target_os = "android"))]
+        if self.is_priority() {
+            if separator {
+                write!(fmt, " | ")?;
+            }
+            write!(fmt, "PRIORITY")?;
+            separator = true;
+        }
+
+        #[cfg(target_os = "freebsd")]
+        if self.is_aio() {
+            if separator {
+                write!(fmt, " | ")?;
+            }
+            write!(fmt, "AIO")?;
+            separator = true;
+        }
+
+        #[cfg(target_os = "freebsd")]
+        if self.is_lio() {
+            if separator {
+                write!(fmt, " | ")?;
+            }
+            write!(fmt, "LIO")?;
+            separator = true;
+        }
+
+        if self.is_error() {
+            if separator {
+                write!(fmt, " | ")?;
+            }
+            write!(fmt, "ERROR")?;
+            separator = true;
+        }
+
+        let _ = separator;
+
+        Ok(())
     }
 }
diff --git a/tokio/src/io/ready.rs b/tokio/src/io/ready.rs
index c2a80264b2c..919f1992c6b 100644
--- a/tokio/src/io/ready.rs
+++ b/tokio/src/io/ready.rs
@@ -11,6 +11,7 @@ const READ_CLOSED: usize = 0b0_0100;
 const WRITE_CLOSED: usize = 0b0_1000;
 #[cfg(any(target_os = "linux", target_os = "android"))]
 const PRIORITY: usize = 0b1_0000;
+const ERROR: usize = 0b10_0000;
 
 /// Describes the readiness state of an I/O resources.
 ///
@@ -40,13 +41,17 @@ impl Ready {
     #[cfg_attr(docsrs, doc(cfg(any(target_os = "linux", target_os = "android"))))]
     pub const PRIORITY: Ready = Ready(PRIORITY);
 
+    /// Returns a `Ready` representing error readiness.
+    pub const ERROR: Ready = Ready(ERROR);
+
     /// Returns a `Ready` representing readiness for all operations.
     #[cfg(any(target_os = "linux", target_os = "android"))]
-    pub const ALL: Ready = Ready(READABLE | WRITABLE | READ_CLOSED | WRITE_CLOSED | PRIORITY);
+    pub const ALL: Ready =
+        Ready(READABLE | WRITABLE | READ_CLOSED | WRITE_CLOSED | ERROR | PRIORITY);
 
     /// Returns a `Ready` representing readiness for all operations.
     #[cfg(not(any(target_os = "linux", target_os = "android")))]
-    pub const ALL: Ready = Ready(READABLE | WRITABLE | READ_CLOSED | WRITE_CLOSED);
+    pub const ALL: Ready = Ready(READABLE | WRITABLE | READ_CLOSED | WRITE_CLOSED | ERROR);
 
     // Must remain crate-private to avoid adding a public dependency on Mio.
     pub(crate) fn from_mio(event: &mio::event::Event) -> Ready {
@@ -79,6 +84,10 @@ impl Ready {
             ready |= Ready::WRITE_CLOSED;
         }
 
+        if event.is_error() {
+            ready |= Ready::ERROR;
+        }
+
         #[cfg(any(target_os = "linux", target_os = "android"))]
         {
             if event.is_priority() {
@@ -182,6 +191,21 @@ impl Ready {
         self.contains(Ready::PRIORITY)
     }
 
+    /// Returns `true` if the value includes error `readiness`.
+    ///
+    /// # Examples
+    ///
+    /// ```
+    /// use tokio::io::Ready;
+    ///
+    /// assert!(!Ready::EMPTY.is_error());
+    /// assert!(!Ready::WRITABLE.is_error());
+    /// assert!(Ready::ERROR.is_error());
+    /// ```
+    pub fn is_error(self) -> bool {
+        self.contains(Ready::ERROR)
+    }
+
     /// Returns true if `self` is a superset of `other`.
     ///
     /// `other` may represent more than one readiness operations, in which case
@@ -230,6 +254,10 @@ impl Ready {
             ready |= Ready::READ_CLOSED;
         }
 
+        if interest.is_error() {
+            ready |= Ready::ERROR;
+        }
+
         ready
     }
 
@@ -283,7 +311,8 @@ impl fmt::Debug for Ready {
         fmt.field("is_readable", &self.is_readable())
             .field("is_writable", &self.is_writable())
             .field("is_read_closed", &self.is_read_closed())
-            .field("is_write_closed", &self.is_write_closed());
+            .field("is_write_closed", &self.is_write_closed())
+            .field("is_error", &self.is_error());
 
         #[cfg(any(target_os = "linux", target_os = "android"))]
         fmt.field("is_priority", &self.is_priority());

diff --git a/tokio/tests/io_async_fd.rs b/tokio/tests/io_async_fd.rs
index cdbfbacd0db..7abd592d9df 100644
--- a/tokio/tests/io_async_fd.rs
+++ b/tokio/tests/io_async_fd.rs
@@ -685,3 +685,128 @@ async fn clear_ready_matching_clears_ready_mut() {
     guard.clear_ready_matching(Ready::WRITABLE);
     assert_eq!(guard.ready(), Ready::EMPTY);
 }
+
+#[tokio::test]
+#[cfg(target_os = "linux")]
+async fn await_error_readiness_timestamping() {
+    use std::net::{Ipv4Addr, SocketAddr};
+
+    use tokio::io::{Interest, Ready};
+
+    let address_a = SocketAddr::from((Ipv4Addr::LOCALHOST, 0));
+    let address_b = SocketAddr::from((Ipv4Addr::LOCALHOST, 0));
+
+    let socket = std::net::UdpSocket::bind(address_a).unwrap();
+
+    socket.set_nonblocking(true).unwrap();
+
+    // configure send timestamps
+    configure_timestamping_socket(&socket).unwrap();
+
+    socket.connect(address_b).unwrap();
+
+    let fd = AsyncFd::new(socket).unwrap();
+
+    tokio::select! {
+        _ = fd.ready(Interest::ERROR) => panic!(),
+        _ = tokio::time::sleep(Duration::from_millis(10)) => {}
+    }
+
+    let buf = b"hello there";
+    fd.get_ref().send(buf).unwrap();
+
+    // the send timestamp should now be in the error queue
+    let guard = fd.ready(Interest::ERROR).await.unwrap();
+    assert_eq!(guard.ready(), Ready::ERROR);
+}
+
+#[cfg(target_os = "linux")]
+fn configure_timestamping_socket(udp_socket: &std::net::UdpSocket) -> std::io::Result<libc::c_int> {
+    // enable software timestamping, and specifically software send timestamping
+    let options = libc::SOF_TIMESTAMPING_SOFTWARE | libc::SOF_TIMESTAMPING_TX_SOFTWARE;
+
+    let res = unsafe {
+        libc::setsockopt(
+            udp_socket.as_raw_fd(),
+            libc::SOL_SOCKET,
+            libc::SO_TIMESTAMP,
+            &options as *const _ as *const libc::c_void,
+            std::mem::size_of_val(&options) as libc::socklen_t,
+        )
+    };
+
+    if res == -1 {
+        Err(std::io::Error::last_os_error())
+    } else {
+        Ok(res)
+    }
+}
+
+#[tokio::test]
+#[cfg(target_os = "linux")]
+async fn await_error_readiness_invalid_address() {
+    use std::net::{Ipv4Addr, SocketAddr};
+    use tokio::io::{Interest, Ready};
+
+    let socket_addr = SocketAddr::from((Ipv4Addr::LOCALHOST, 0));
+    let socket = std::net::UdpSocket::bind(socket_addr).unwrap();
+    let socket_fd = socket.as_raw_fd();
+
+    // Enable IP_RECVERR option to receive error messages
+    // https://man7.org/linux/man-pages/man7/ip.7.html has some extra information
+    let recv_err: libc::c_int = 1;
+    unsafe {
+        let res = libc::setsockopt(
+            socket.as_raw_fd(),
+            libc::SOL_IP,
+            libc::IP_RECVERR,
+            &recv_err as *const _ as *const libc::c_void,
+            std::mem::size_of_val(&recv_err) as libc::socklen_t,
+        );
+        if res == -1 {
+            panic!("{:?}", std::io::Error::last_os_error());
+        }
+    }
+
+    // Spawn a separate thread for sending messages
+    tokio::spawn(async move {
+        // Set the destination address. This address is invalid in this context. the OS will notice
+        // that nobody is listening on port this port. Normally this is ignored (UDP is "fire and forget"),
+        // but because IP_RECVERR is enabled, the error will actually be reported to the sending socket
+        let mut dest_addr =
+            unsafe { std::mem::MaybeUninit::<libc::sockaddr_in>::zeroed().assume_init() };
+        dest_addr.sin_family = libc::AF_INET as _;
+        // based on https://en.wikipedia.org/wiki/Ephemeral_port, we should pick a port number
+        // below 1024 to guarantee that other tests don't select this port by accident when they
+        // use port 0 to select an ephemeral port.
+        dest_addr.sin_port = 512u16.to_be(); // Destination port
+
+        // Prepare the message data
+        let message = "Hello, Socket!";
+
+        // Prepare the message structure for sendmsg
+        let mut iov = libc::iovec {
+            iov_base: message.as_ptr() as *mut libc::c_void,
+            iov_len: message.len(),
+        };
+
+        // Prepare the destination address for the sendmsg call
+        let dest_sockaddr: *const libc::sockaddr = &dest_addr as *const _ as *const libc::sockaddr;
+        let dest_addrlen: libc::socklen_t = std::mem::size_of_val(&dest_addr) as libc::socklen_t;
+
+        let mut msg: libc::msghdr = unsafe { std::mem::MaybeUninit::zeroed().assume_init() };
+        msg.msg_name = dest_sockaddr as *mut libc::c_void;
+        msg.msg_namelen = dest_addrlen;
+        msg.msg_iov = &mut iov;
+        msg.msg_iovlen = 1;
+
+        if unsafe { libc::sendmsg(socket_fd, &msg, 0) } == -1 {
+            Err(std::io::Error::last_os_error()).unwrap()
+        }
+    });
+
+    let fd = AsyncFd::new(socket).unwrap();
+
+    let guard = fd.ready(Interest::ERROR).await.unwrap();
+    assert_eq!(guard.ready(), Ready::ERROR);
+}

{"signal::unix::tests::into_c_int": {"run": "PASS", "test": "NONE", "fix": "PASS"}, "sync::rwlock::bounds": {"run": "PASS", "test": "NONE", "fix": "PASS"}, "runtime::tests::inject::push_and_pop": {"run": "PASS", "test": "NONE", "fix": "PASS"}, "util::memchr::tests::memchr_all": {"run": "PASS", "test": "NONE", "fix": "PASS"}, "open_options_write": {"run": "PASS", "test": "NONE", "fix": "PASS"}, "signal::reusable_box::test::test_different_futures": {"run": "PASS", "test": "NONE", "fix": "PASS"}, "path_read_write": {"run": "PASS", "test": "NONE", "fix": "PASS"}, "io::util::lines::tests::assert_unpin": {"run": "PASS", "test": "NONE", "fix": "PASS"}, "sync::tests::semaphore_batch::cancel_acquire_releases_permits": {"run": "PASS", "test": "NONE", "fix": "PASS"}, "open_options_custom_flags_linux": {"run": "PASS", "test": "NONE", "fix": "PASS"}, "basic_write": {"run": "PASS", "test": "NONE", "fix": "PASS"}, "sync::tests::semaphore_batch::try_acquire_one_available": {"run": "PASS", "test": "NONE", "fix": "PASS"}, "signal::registry::tests::broadcast_returns_if_at_least_one_event_fired": {"run": "PASS", "test": "NONE", "fix": "PASS"}, "pin": {"run": "PASS", "test": "NONE", "fix": "PASS"}, "sync::tests::semaphore_batch::poll_acquire_many_unavailable": {"run": "PASS", "test": "NONE", "fix": "PASS"}, "sync::broadcast::tests::receiver_count_on_channel_constructor": {"run": "PASS", "test": "NONE", "fix": "PASS"}, "sync::tests::semaphore_batch::release_permits_at_drop": {"run": "PASS", "test": "NONE", "fix": "PASS"}, "basic_read": {"run": "PASS", "test": "NONE", "fix": "PASS"}, "runtime::time::wheel::level::test::test_slot_for": {"run": "PASS", "test": "NONE", "fix": "PASS"}, "fs::file::tests::read_err_then_read_success": {"run": "PASS", "test": "NONE", "fix": "PASS"}, "file_debug_fmt": {"run": "PASS", "test": "NONE", "fix": "PASS"}, "fs::file::tests::incomplete_read_followed_by_flush": {"run": "PASS", "test": "NONE", "fix": "PASS"}, "task::local::tests::local_current_thread_scheduler": {"run": "PASS", "test": "NONE", "fix": "PASS"}, "process::test::no_kill_if_already_killed": {"run": "PASS", "test": "NONE", "fix": "PASS"}, "remove": {"run": "PASS", "test": "NONE", "fix": "PASS"}, "sync::mpsc::block::assert_no_stack_overflow": {"run": "PASS", "test": "NONE", "fix": "PASS"}, "read_file_from_unix_fd": {"run": "PASS", "test": "NONE", "fix": "PASS"}, "process::imp::orphan::test::no_reap_if_no_signal_received": {"run": "PASS", "test": "NONE", "fix": "PASS"}, "fs::file::tests::open_set_len_ok": {"run": "PASS", "test": "NONE", "fix": "PASS"}, "sync::tests::semaphore_batch::close_semaphore_notifies_permit2": {"run": "PASS", "test": "NONE", "fix": "PASS"}, "util::memchr::tests::memchr_test": {"run": "PASS", "test": "NONE", "fix": "PASS"}, "fs::file::tests::incomplete_partial_read_followed_by_write": {"run": "PASS", "test": "NONE", "fix": "PASS"}, "fs::file::tests::open_set_len_err": {"run": "PASS", "test": "NONE", "fix": "PASS"}, "fs::file::tests::sync_all_ordered_after_write": {"run": "PASS", "test": "NONE", "fix": "PASS"}, "fs::file::tests::read_with_smaller_buf": {"run": "PASS", "test": "NONE", "fix": "PASS"}, "io::util::buf_reader::tests::assert_unpin": {"run": "PASS", "test": "NONE", "fix": "PASS"}, "runtime::time::tests::poll_process_levels_targeted": {"run": "PASS", "test": "NONE", "fix": "PASS"}, "fs::file::tests::incomplete_read_followed_by_write": {"run": "PASS", "test": "NONE", "fix": "PASS"}, "open_options_create": {"run": "PASS", "test": "NONE", "fix": "PASS"}, "unix_fd_is_valid": {"run": "PASS", "test": "NONE", "fix": "PASS"}, "fs::file::tests::sync_data_ordered_after_write": {"run": "PASS", "test": "NONE", "fix": "PASS"}, "util::linked_list::tests::push_pop_push_pop": {"run": "PASS", "test": "NONE", "fix": "PASS"}, "runtime::time::tests::single_timer": {"run": "PASS", "test": "NONE", "fix": "PASS"}, "sync::tests::semaphore_batch::max_permits_doesnt_panic": {"run": "PASS", "test": "NONE", "fix": "PASS"}, "process::imp::orphan::test::does_nothing_if_signal_could_not_be_registered": {"run": "PASS", "test": "NONE", "fix": "PASS"}, "signal::unix::tests::signal_enable_error_on_forbidden_input": {"run": "PASS", "test": "NONE", "fix": "PASS"}, "io::stdio_common::tests::test_pseudo_text": {"run": "PASS", "test": "NONE", "fix": "PASS"}, "runtime::scheduler::multi_thread::queue::test_local_queue_capacity": {"run": "PASS", "test": "NONE", "fix": "PASS"}, "sync::tests::notify::notify_clones_waker_before_lock": {"run": "PASS", "test": "NONE", "fix": "PASS"}, "io::util::sink::tests::assert_unpin": {"run": "PASS", "test": "NONE", "fix": "PASS"}, "runtime::tests::inject::push_batch_and_pop": {"run": "PASS", "test": "NONE", "fix": "PASS"}, "fs::file::tests::write_seek_flush_err": {"run": "PASS", "test": "NONE", "fix": "PASS"}, "sync::tests::semaphore_batch::poll_acquire_many_available": {"run": "PASS", "test": "NONE", "fix": "PASS"}, "open_options_create_new": {"run": "PASS", "test": "NONE", "fix": "PASS"}, "fs::file::tests::read_with_bigger_buf": {"run": "PASS", "test": "NONE", "fix": "PASS"}, "open_options_truncate": {"run": "PASS", "test": "NONE", "fix": "PASS"}, "sync::broadcast::tests::receiver_count_on_sender_constructor": {"run": "PASS", "test": "NONE", "fix": "PASS"}, "signal::reusable_box::test::test_different_sizes": {"run": "PASS", "test": "NONE", "fix": "PASS"}, "util::linked_list::tests::const_new": {"run": "PASS", "test": "NONE", "fix": "PASS"}, "sync::tests::semaphore_batch::try_acquire_one_unavailable": {"run": "PASS", "test": "NONE", "fix": "PASS"}, "sync::tests::semaphore_batch::try_acquire_many_available": {"run": "PASS", "test": "NONE", "fix": "PASS"}, "runtime::scheduler::multi_thread::idle::test_state": {"run": "PASS", "test": "NONE", "fix": "PASS"}, "fs::file::tests::flush_while_idle": {"run": "PASS", "test": "NONE", "fix": "PASS"}, "runtime::tests::queue::steal_batch": {"run": "PASS", "test": "NONE", "fix": "PASS"}, "process::imp::reap::test::drop_reaps_if_possible": {"run": "PASS", "test": "NONE", "fix": "PASS"}, "canonicalize_root_dir_unix": {"run": "PASS", "test": "NONE", "fix": "PASS"}, "util::linked_list::tests::count": {"run": "PASS", "test": "NONE", "fix": "PASS"}, "write_into_std_immediate": {"run": "PASS", "test": "NONE", "fix": "PASS"}, "io::util::buf_stream::tests::assert_unpin": {"run": "PASS", "test": "NONE", "fix": "PASS"}, "process::test::kills_on_drop_if_specified": {"run": "PASS", "test": "NONE", "fix": "PASS"}, "build_dir_mode_read_only": {"run": "PASS", "test": "NONE", "fix": "PASS"}, "fs::file::tests::open_write": {"run": "PASS", "test": "NONE", "fix": "PASS"}, "sync::tests::semaphore_batch::poll_acquire_one_zero_permits": {"run": "PASS", "test": "NONE", "fix": "PASS"}, "runtime::tests::queue::fits_256_one_at_a_time": {"run": "PASS", "test": "NONE", "fix": "PASS"}, "io::util::split::tests::assert_unpin": {"run": "PASS", "test": "NONE", "fix": "PASS"}, "signal::unix::tests::from_c_int": {"run": "PASS", "test": "NONE", "fix": "PASS"}, "runtime::task::core::header_lte_cache_line": {"run": "PASS", "test": "NONE", "fix": "PASS"}, "fs::file::tests::read_twice_before_dispatch": {"run": "PASS", "test": "NONE", "fix": "PASS"}, "runtime::coop::test::budgeting": {"run": "PASS", "test": "NONE", "fix": "PASS"}, "basic_write_and_shutdown": {"run": "PASS", "test": "NONE", "fix": "PASS"}, "copy": {"run": "PASS", "test": "NONE", "fix": "PASS"}, "create_dir": {"run": "PASS", "test": "NONE", "fix": "PASS"}, "io::util::repeat::tests::assert_unpin": {"run": "PASS", "test": "NONE", "fix": "PASS"}, "fs::file::tests::write_seek_write_err": {"run": "PASS", "test": "NONE", "fix": "PASS"}, "fs::file::tests::open_read": {"run": "PASS", "test": "NONE", "fix": "PASS"}, "io::util::take::tests::assert_unpin": {"run": "PASS", "test": "NONE", "fix": "PASS"}, "util::linked_list::tests::remove_by_address": {"run": "PASS", "test": "NONE", "fix": "PASS"}, "coop": {"run": "PASS", "test": "NONE", "fix": "PASS"}, "process::imp::reap::test::drop_enqueues_orphan_if_wait_fails": {"run": "PASS", "test": "NONE", "fix": "PASS"}, "runtime::tests::queue::stress1": {"run": "PASS", "test": "NONE", "fix": "PASS"}, "sync::tests::semaphore_batch::poll_acquire_one_available": {"run": "PASS", "test": "NONE", "fix": "PASS"}, "sync::tests::atomic_waker::basic_usage": {"run": "PASS", "test": "NONE", "fix": "PASS"}, "test_symlink": {"run": "PASS", "test": "NONE", "fix": "PASS"}, "io::util::buf_writer::tests::assert_unpin": {"run": "PASS", "test": "NONE", "fix": "PASS"}, "open_options_append": {"run": "PASS", "test": "NONE", "fix": "PASS"}, "process::test::no_kill_if_reaped": {"run": "PASS", "test": "NONE", "fix": "PASS"}, "io::stdio_common::tests::test_splitter": {"run": "PASS", "test": "NONE", "fix": "PASS"}, "fs::file::tests::write_read_flush_err": {"run": "PASS", "test": "NONE", "fix": "PASS"}, "runtime::task::list::tests::test_id_not_broken": {"run": "PASS", "test": "NONE", "fix": "PASS"}, "util::linked_list::tests::push_and_drain": {"run": "PASS", "test": "NONE", "fix": "PASS"}, "sync::tests::notify::notify_waiters_handles_panicking_waker": {"run": "PASS", "test": "NONE", "fix": "PASS"}, "runtime::time::wheel::test::test_level_for": {"run": "PASS", "test": "NONE", "fix": "PASS"}, "fs::file::tests::write_write_err": {"run": "PASS", "test": "NONE", "fix": "PASS"}, "signal::registry::tests::record_invalid_event_does_nothing": {"run": "PASS", "test": "NONE", "fix": "PASS"}, "runtime::time::tests::reset_future": {"run": "PASS", "test": "NONE", "fix": "PASS"}, "echo_server": {"run": "PASS", "test": "NONE", "fix": "PASS"}, "sync::tests::semaphore_batch::close_semaphore_prevents_acquire": {"run": "PASS", "test": "NONE", "fix": "PASS"}, "read_dir_entry_info": {"run": "PASS", "test": "NONE", "fix": "PASS"}, "create_all": {"run": "PASS", "test": "NONE", "fix": "PASS"}, "io::util::chain::tests::assert_unpin": {"run": "PASS", "test": "NONE", "fix": "PASS"}, "process::imp::reap::test::kill": {"run": "PASS", "test": "NONE", "fix": "PASS"}, "sync::tests::atomic_waker::wake_without_register": {"run": "PASS", "test": "NONE", "fix": "PASS"}, "test_hard_link": {"run": "PASS", "test": "NONE", "fix": "PASS"}, "sync::mutex::bounds": {"run": "PASS", "test": "NONE", "fix": "PASS"}, "fs::file::tests::write_read_write_err": {"run": "PASS", "test": "NONE", "fix": "PASS"}, "fs::file::tests::incomplete_flush_followed_by_write": {"run": "PASS", "test": "NONE", "fix": "PASS"}, "write_into_std": {"run": "PASS", "test": "NONE", "fix": "PASS"}, "runtime::time::tests::change_waker": {"run": "PASS", "test": "NONE", "fix": "PASS"}, "process::imp::reap::test::reaper": {"run": "PASS", "test": "NONE", "fix": "PASS"}, "util::idle_notified_set::tests::join_set_test": {"run": "PASS", "test": "NONE", "fix": "PASS"}, "runtime::tests::queue::stress2": {"run": "PASS", "test": "NONE", "fix": "PASS"}, "signal::registry::tests::smoke": {"run": "PASS", "test": "NONE", "fix": "PASS"}, "io::util::empty::tests::assert_unpin": {"run": "PASS", "test": "NONE", "fix": "PASS"}, "runtime::time::tests::poll_process_levels": {"run": "PASS", "test": "NONE", "fix": "PASS"}, "sync::tests::notify::notify_simple": {"run": "PASS", "test": "NONE", "fix": "PASS"}, "fs::file::tests::sync_data_err_ordered_after_write": {"run": "PASS", "test": "NONE", "fix": "PASS"}, "sync::tests::atomic_waker::atomic_waker_panic_safe": {"run": "PASS", "test": "NONE", "fix": "PASS"}, "sync::tests::notify::watch_test": {"run": "PASS", "test": "NONE", "fix": "PASS"}, "signal::reusable_box::test::test_zero_sized": {"run": "PASS", "test": "NONE", "fix": "PASS"}, "write_to_clone": {"run": "PASS", "test": "NONE", "fix": "PASS"}, "sync::semaphore::bounds": {"run": "PASS", "test": "NONE", "fix": "PASS"}, "compile_fail_full": {"run": "PASS", "test": "NONE", "fix": "PASS"}, "fs::file::tests::busy_file_seek_error": {"run": "PASS", "test": "NONE", "fix": "PASS"}, "sync::tests::semaphore_batch::poll_acquire_one_unavailable": {"run": "PASS", "test": "NONE", "fix": "PASS"}, "process::test::no_kill_on_drop_by_default": {"run": "PASS", "test": "NONE", "fix": "PASS"}, "signal::unix::tests::signal_enable_error_on_invalid_input": {"run": "PASS", "test": "NONE", "fix": "PASS"}, "io::util::copy_buf::tests::assert_unpin": {"run": "PASS", "test": "NONE", "fix": "PASS"}, "copy_permissions": {"run": "PASS", "test": "NONE", "fix": "PASS"}, "process::imp::orphan::test::does_not_register_signal_if_queue_empty": {"run": "PASS", "test": "NONE", "fix": "PASS"}, "process::imp::orphan::test::no_reap_if_signal_lock_held": {"run": "PASS", "test": "NONE", "fix": "PASS"}, "fs::file::tests::write_twice_before_dispatch": {"run": "PASS", "test": "NONE", "fix": "PASS"}, "fs::file::tests::read_err": {"run": "PASS", "test": "NONE", "fix": "PASS"}, "fs::file::tests::partial_read_set_len_ok": {"run": "PASS", "test": "NONE", "fix": "PASS"}, "read_inherent": {"run": "PASS", "test": "NONE", "fix": "PASS"}, "build_dir": {"run": "PASS", "test": "NONE", "fix": "PASS"}, "read_file_from_std": {"run": "PASS", "test": "NONE", "fix": "PASS"}, "runtime::tests::queue::fits_256_all_at_once": {"run": "PASS", "test": "NONE", "fix": "PASS"}, "fs::file::tests::write_with_buffer_larger_than_max": {"run": "PASS", "test": "NONE", "fix": "PASS"}, "runtime::time::tests::drop_timer": {"run": "PASS", "test": "NONE", "fix": "PASS"}, "sync::tests::semaphore_batch::try_acquire_many_unavailable": {"run": "PASS", "test": "NONE", "fix": "PASS"}, "fs::file::tests::sync_all_err_ordered_after_write": {"run": "PASS", "test": "NONE", "fix": "PASS"}, "fs::file::tests::read_with_buffer_larger_than_max": {"run": "PASS", "test": "NONE", "fix": "PASS"}, "util::memchr::tests::memchr_empty": {"run": "PASS", "test": "NONE", "fix": "PASS"}, "runtime::tests::task_combinations::test_combinations": {"run": "PASS", "test": "NONE", "fix": "PASS"}, "process::imp::orphan::test::drain_attempts_a_single_reap_of_all_queued_orphans": {"run": "PASS", "test": "NONE", "fix": "PASS"}, "rewind_seek_position": {"run": "PASS", "test": "NONE", "fix": "PASS"}, "runtime::tests::queue::fits_256_all_in_chunks": {"run": "PASS", "test": "NONE", "fix": "PASS"}, "runtime::tests::inject::pop_n_drains_on_drop": {"run": "PASS", "test": "NONE", "fix": "PASS"}, "task::local::tests::wakes_to_local_queue": {"run": "PASS", "test": "NONE", "fix": "PASS"}, "sync::tests::semaphore_batch::close_semaphore_notifies_permit1": {"run": "PASS", "test": "NONE", "fix": "PASS"}, "runtime::tests::queue::overflow": {"run": "PASS", "test": "NONE", "fix": "PASS"}, "open_with_open_options_and_read": {"run": "PASS", "test": "NONE", "fix": "PASS"}}
{"signal::unix::tests::into_c_int": {"run": "PASS", "test": "NONE", "fix": "PASS"}, "sync::rwlock::bounds": {"run": "PASS", "test": "NONE", "fix": "PASS"}, "runtime::tests::inject::push_and_pop": {"run": "PASS", "test": "NONE", "fix": "PASS"}, "util::memchr::tests::memchr_all": {"run": "PASS", "test": "NONE", "fix": "PASS"}, "open_options_write": {"run": "PASS", "test": "NONE", "fix": "PASS"}, "signal::reusable_box::test::test_different_futures": {"run": "PASS", "test": "NONE", "fix": "PASS"}, "path_read_write": {"run": "PASS", "test": "NONE", "fix": "PASS"}, "io::util::lines::tests::assert_unpin": {"run": "PASS", "test": "NONE", "fix": "PASS"}, "sync::tests::semaphore_batch::cancel_acquire_releases_permits": {"run": "PASS", "test": "NONE", "fix": "PASS"}, "open_options_custom_flags_linux": {"run": "PASS", "test": "NONE", "fix": "PASS"}, "basic_write": {"run": "PASS", "test": "NONE", "fix": "PASS"}, "sync::tests::semaphore_batch::try_acquire_one_available": {"run": "PASS", "test": "NONE", "fix": "PASS"}, "signal::registry::tests::broadcast_returns_if_at_least_one_event_fired": {"run": "PASS", "test": "NONE", "fix": "PASS"}, "pin": {"run": "PASS", "test": "NONE", "fix": "PASS"}, "sync::tests::semaphore_batch::poll_acquire_many_unavailable": {"run": "PASS", "test": "NONE", "fix": "PASS"}, "sync::broadcast::tests::receiver_count_on_channel_constructor": {"run": "PASS", "test": "NONE", "fix": "PASS"}, "sync::tests::semaphore_batch::release_permits_at_drop": {"run": "PASS", "test": "NONE", "fix": "PASS"}, "basic_read": {"run": "PASS", "test": "NONE", "fix": "PASS"}, "runtime::time::wheel::level::test::test_slot_for": {"run": "PASS", "test": "NONE", "fix": "PASS"}, "fs::file::tests::read_err_then_read_success": {"run": "PASS", "test": "NONE", "fix": "PASS"}, "file_debug_fmt": {"run": "PASS", "test": "NONE", "fix": "PASS"}, "fs::file::tests::incomplete_read_followed_by_flush": {"run": "PASS", "test": "NONE", "fix": "PASS"}, "task::local::tests::local_current_thread_scheduler": {"run": "PASS", "test": "NONE", "fix": "PASS"}, "process::test::no_kill_if_already_killed": {"run": "PASS", "test": "NONE", "fix": "PASS"}, "remove": {"run": "PASS", "test": "NONE", "fix": "PASS"}, "sync::mpsc::block::assert_no_stack_overflow": {"run": "PASS", "test": "NONE", "fix": "PASS"}, "read_file_from_unix_fd": {"run": "PASS", "test": "NONE", "fix": "PASS"}, "process::imp::orphan::test::no_reap_if_no_signal_received": {"run": "PASS", "test": "NONE", "fix": "PASS"}, "fs::file::tests::open_set_len_ok": {"run": "PASS", "test": "NONE", "fix": "PASS"}, "sync::tests::semaphore_batch::close_semaphore_notifies_permit2": {"run": "PASS", "test": "NONE", "fix": "PASS"}, "util::memchr::tests::memchr_test": {"run": "PASS", "test": "NONE", "fix": "PASS"}, "fs::file::tests::incomplete_partial_read_followed_by_write": {"run": "PASS", "test": "NONE", "fix": "PASS"}, "fs::file::tests::open_set_len_err": {"run": "PASS", "test": "NONE", "fix": "PASS"}, "fs::file::tests::sync_all_ordered_after_write": {"run": "PASS", "test": "NONE", "fix": "PASS"}, "fs::file::tests::read_with_smaller_buf": {"run": "PASS", "test": "NONE", "fix": "PASS"}, "io::util::buf_reader::tests::assert_unpin": {"run": "PASS", "test": "NONE", "fix": "PASS"}, "runtime::time::tests::poll_process_levels_targeted": {"run": "PASS", "test": "NONE", "fix": "PASS"}, "fs::file::tests::incomplete_read_followed_by_write": {"run": "PASS", "test": "NONE", "fix": "PASS"}, "open_options_create": {"run": "PASS", "test": "NONE", "fix": "PASS"}, "unix_fd_is_valid": {"run": "PASS", "test": "NONE", "fix": "PASS"}, "fs::file::tests::sync_data_ordered_after_write": {"run": "PASS", "test": "NONE", "fix": "PASS"}, "util::linked_list::tests::push_pop_push_pop": {"run": "PASS", "test": "NONE", "fix": "PASS"}, "runtime::time::tests::single_timer": {"run": "PASS", "test": "NONE", "fix": "PASS"}, "sync::tests::semaphore_batch::max_permits_doesnt_panic": {"run": "PASS", "test": "NONE", "fix": "PASS"}, "process::imp::orphan::test::does_nothing_if_signal_could_not_be_registered": {"run": "PASS", "test": "NONE", "fix": "PASS"}, "signal::unix::tests::signal_enable_error_on_forbidden_input": {"run": "PASS", "test": "NONE", "fix": "PASS"}, "io::stdio_common::tests::test_pseudo_text": {"run": "PASS", "test": "NONE", "fix": "PASS"}, "runtime::scheduler::multi_thread::queue::test_local_queue_capacity": {"run": "PASS", "test": "NONE", "fix": "PASS"}, "sync::tests::notify::notify_clones_waker_before_lock": {"run": "PASS", "test": "NONE", "fix": "PASS"}, "io::util::sink::tests::assert_unpin": {"run": "PASS", "test": "NONE", "fix": "PASS"}, "runtime::tests::inject::push_batch_and_pop": {"run": "PASS", "test": "NONE", "fix": "PASS"}, "fs::file::tests::write_seek_flush_err": {"run": "PASS", "test": "NONE", "fix": "PASS"}, "sync::tests::semaphore_batch::poll_acquire_many_available": {"run": "PASS", "test": "NONE", "fix": "PASS"}, "open_options_create_new": {"run": "PASS", "test": "NONE", "fix": "PASS"}, "fs::file::tests::read_with_bigger_buf": {"run": "PASS", "test": "NONE", "fix": "PASS"}, "open_options_truncate": {"run": "PASS", "test": "NONE", "fix": "PASS"}, "sync::broadcast::tests::receiver_count_on_sender_constructor": {"run": "PASS", "test": "NONE", "fix": "PASS"}, "signal::reusable_box::test::test_different_sizes": {"run": "PASS", "test": "NONE", "fix": "PASS"}, "util::linked_list::tests::const_new": {"run": "PASS", "test": "NONE", "fix": "PASS"}, "sync::tests::semaphore_batch::try_acquire_one_unavailable": {"run": "PASS", "test": "NONE", "fix": "PASS"}, "sync::tests::semaphore_batch::try_acquire_many_available": {"run": "PASS", "test": "NONE", "fix": "PASS"}, "runtime::scheduler::multi_thread::idle::test_state": {"run": "PASS", "test": "NONE", "fix": "PASS"}, "fs::file::tests::flush_while_idle": {"run": "PASS", "test": "NONE", "fix": "PASS"}, "runtime::tests::queue::steal_batch": {"run": "PASS", "test": "NONE", "fix": "PASS"}, "process::imp::reap::test::drop_reaps_if_possible": {"run": "PASS", "test": "NONE", "fix": "PASS"}, "canonicalize_root_dir_unix": {"run": "PASS", "test": "NONE", "fix": "PASS"}, "util::linked_list::tests::count": {"run": "PASS", "test": "NONE", "fix": "PASS"}, "write_into_std_immediate": {"run": "PASS", "test": "NONE", "fix": "PASS"}, "io::util::buf_stream::tests::assert_unpin": {"run": "PASS", "test": "NONE", "fix": "PASS"}, "process::test::kills_on_drop_if_specified": {"run": "PASS", "test": "NONE", "fix": "PASS"}, "build_dir_mode_read_only": {"run": "PASS", "test": "NONE", "fix": "PASS"}, "fs::file::tests::open_write": {"run": "PASS", "test": "NONE", "fix": "PASS"}, "sync::tests::semaphore_batch::poll_acquire_one_zero_permits": {"run": "PASS", "test": "NONE", "fix": "PASS"}, "runtime::tests::queue::fits_256_one_at_a_time": {"run": "PASS", "test": "NONE", "fix": "PASS"}, "io::util::split::tests::assert_unpin": {"run": "PASS", "test": "NONE", "fix": "PASS"}, "signal::unix::tests::from_c_int": {"run": "PASS", "test": "NONE", "fix": "PASS"}, "runtime::task::core::header_lte_cache_line": {"run": "PASS", "test": "NONE", "fix": "PASS"}, "fs::file::tests::read_twice_before_dispatch": {"run": "PASS", "test": "NONE", "fix": "PASS"}, "runtime::coop::test::budgeting": {"run": "PASS", "test": "NONE", "fix": "PASS"}, "basic_write_and_shutdown": {"run": "PASS", "test": "NONE", "fix": "PASS"}, "copy": {"run": "PASS", "test": "NONE", "fix": "PASS"}, "create_dir": {"run": "PASS", "test": "NONE", "fix": "PASS"}, "io::util::repeat::tests::assert_unpin": {"run": "PASS", "test": "NONE", "fix": "PASS"}, "fs::file::tests::write_seek_write_err": {"run": "PASS", "test": "NONE", "fix": "PASS"}, "fs::file::tests::open_read": {"run": "PASS", "test": "NONE", "fix": "PASS"}, "io::util::take::tests::assert_unpin": {"run": "PASS", "test": "NONE", "fix": "PASS"}, "util::linked_list::tests::remove_by_address": {"run": "PASS", "test": "NONE", "fix": "PASS"}, "coop": {"run": "PASS", "test": "NONE", "fix": "PASS"}, "process::imp::reap::test::drop_enqueues_orphan_if_wait_fails": {"run": "PASS", "test": "NONE", "fix": "PASS"}, "runtime::tests::queue::stress1": {"run": "PASS", "test": "NONE", "fix": "PASS"}, "sync::tests::semaphore_batch::poll_acquire_one_available": {"run": "PASS", "test": "NONE", "fix": "PASS"}, "sync::tests::atomic_waker::basic_usage": {"run": "PASS", "test": "NONE", "fix": "PASS"}, "test_symlink": {"run": "PASS", "test": "NONE", "fix": "PASS"}, "io::util::buf_writer::tests::assert_unpin": {"run": "PASS", "test": "NONE", "fix": "PASS"}, "open_options_append": {"run": "PASS", "test": "NONE", "fix": "PASS"}, "process::test::no_kill_if_reaped": {"run": "PASS", "test": "NONE", "fix": "PASS"}, "io::stdio_common::tests::test_splitter": {"run": "PASS", "test": "NONE", "fix": "PASS"}, "fs::file::tests::write_read_flush_err": {"run": "PASS", "test": "NONE", "fix": "PASS"}, "runtime::task::list::tests::test_id_not_broken": {"run": "PASS", "test": "NONE", "fix": "PASS"}, "util::linked_list::tests::push_and_drain": {"run": "PASS", "test": "NONE", "fix": "PASS"}, "sync::tests::notify::notify_waiters_handles_panicking_waker": {"run": "PASS", "test": "NONE", "fix": "PASS"}, "runtime::time::wheel::test::test_level_for": {"run": "PASS", "test": "NONE", "fix": "PASS"}, "fs::file::tests::write_write_err": {"run": "PASS", "test": "NONE", "fix": "PASS"}, "signal::registry::tests::record_invalid_event_does_nothing": {"run": "PASS", "test": "NONE", "fix": "PASS"}, "runtime::time::tests::reset_future": {"run": "PASS", "test": "NONE", "fix": "PASS"}, "echo_server": {"run": "PASS", "test": "NONE", "fix": "PASS"}, "sync::tests::semaphore_batch::close_semaphore_prevents_acquire": {"run": "PASS", "test": "NONE", "fix": "PASS"}, "read_dir_entry_info": {"run": "PASS", "test": "NONE", "fix": "PASS"}, "create_all": {"run": "PASS", "test": "NONE", "fix": "PASS"}, "io::util::chain::tests::assert_unpin": {"run": "PASS", "test": "NONE", "fix": "PASS"}, "process::imp::reap::test::kill": {"run": "PASS", "test": "NONE", "fix": "PASS"}, "sync::tests::atomic_waker::wake_without_register": {"run": "PASS", "test": "NONE", "fix": "PASS"}, "test_hard_link": {"run": "PASS", "test": "NONE", "fix": "PASS"}, "sync::mutex::bounds": {"run": "PASS", "test": "NONE", "fix": "PASS"}, "fs::file::tests::write_read_write_err": {"run": "PASS", "test": "NONE", "fix": "PASS"}, "fs::file::tests::incomplete_flush_followed_by_write": {"run": "PASS", "test": "NONE", "fix": "PASS"}, "write_into_std": {"run": "PASS", "test": "NONE", "fix": "PASS"}, "runtime::time::tests::change_waker": {"run": "PASS", "test": "NONE", "fix": "PASS"}, "process::imp::reap::test::reaper": {"run": "PASS", "test": "NONE", "fix": "PASS"}, "util::idle_notified_set::tests::join_set_test": {"run": "PASS", "test": "NONE", "fix": "PASS"}, "runtime::tests::queue::stress2": {"run": "PASS", "test": "NONE", "fix": "PASS"}, "signal::registry::tests::smoke": {"run": "PASS", "test": "NONE", "fix": "PASS"}, "io::util::empty::tests::assert_unpin": {"run": "PASS", "test": "NONE", "fix": "PASS"}, "runtime::time::tests::poll_process_levels": {"run": "PASS", "test": "NONE", "fix": "PASS"}, "sync::tests::notify::notify_simple": {"run": "PASS", "test": "NONE", "fix": "PASS"}, "fs::file::tests::sync_data_err_ordered_after_write": {"run": "PASS", "test": "NONE", "fix": "PASS"}, "sync::tests::atomic_waker::atomic_waker_panic_safe": {"run": "PASS", "test": "NONE", "fix": "PASS"}, "sync::tests::notify::watch_test": {"run": "PASS", "test": "NONE", "fix": "PASS"}, "signal::reusable_box::test::test_zero_sized": {"run": "PASS", "test": "NONE", "fix": "PASS"}, "write_to_clone": {"run": "PASS", "test": "NONE", "fix": "PASS"}, "sync::semaphore::bounds": {"run": "PASS", "test": "NONE", "fix": "PASS"}, "compile_fail_full": {"run": "PASS", "test": "NONE", "fix": "PASS"}, "fs::file::tests::busy_file_seek_error": {"run": "PASS", "test": "NONE", "fix": "PASS"}, "sync::tests::semaphore_batch::poll_acquire_one_unavailable": {"run": "PASS", "test": "NONE", "fix": "PASS"}, "process::test::no_kill_on_drop_by_default": {"run": "PASS", "test": "NONE", "fix": "PASS"}, "signal::unix::tests::signal_enable_error_on_invalid_input": {"run": "PASS", "test": "NONE", "fix": "PASS"}, "io::util::copy_buf::tests::assert_unpin": {"run": "PASS", "test": "NONE", "fix": "PASS"}, "copy_permissions": {"run": "PASS", "test": "NONE", "fix": "PASS"}, "process::imp::orphan::test::does_not_register_signal_if_queue_empty": {"run": "PASS", "test": "NONE", "fix": "PASS"}, "process::imp::orphan::test::no_reap_if_signal_lock_held": {"run": "PASS", "test": "NONE", "fix": "PASS"}, "fs::file::tests::write_twice_before_dispatch": {"run": "PASS", "test": "NONE", "fix": "PASS"}, "fs::file::tests::read_err": {"run": "PASS", "test": "NONE", "fix": "PASS"}, "fs::file::tests::partial_read_set_len_ok": {"run": "PASS", "test": "NONE", "fix": "PASS"}, "read_inherent": {"run": "PASS", "test": "NONE", "fix": "PASS"}, "build_dir": {"run": "PASS", "test": "NONE", "fix": "PASS"}, "read_file_from_std": {"run": "PASS", "test": "NONE", "fix": "PASS"}, "runtime::tests::queue::fits_256_all_at_once": {"run": "PASS", "test": "NONE", "fix": "PASS"}, "fs::file::tests::write_with_buffer_larger_than_max": {"run": "PASS", "test": "NONE", "fix": "PASS"}, "runtime::time::tests::drop_timer": {"run": "PASS", "test": "NONE", "fix": "PASS"}, "sync::tests::semaphore_batch::try_acquire_many_unavailable": {"run": "PASS", "test": "NONE", "fix": "PASS"}, "fs::file::tests::sync_all_err_ordered_after_write": {"run": "PASS", "test": "NONE", "fix": "PASS"}, "fs::file::tests::read_with_buffer_larger_than_max": {"run": "PASS", "test": "NONE", "fix": "PASS"}, "util::memchr::tests::memchr_empty": {"run": "PASS", "test": "NONE", "fix": "PASS"}, "runtime::tests::task_combinations::test_combinations": {"run": "PASS", "test": "NONE", "fix": "PASS"}, "process::imp::orphan::test::drain_attempts_a_single_reap_of_all_queued_orphans": {"run": "PASS", "test": "NONE", "fix": "PASS"}, "rewind_seek_position": {"run": "PASS", "test": "NONE", "fix": "PASS"}, "runtime::tests::queue::fits_256_all_in_chunks": {"run": "PASS", "test": "NONE", "fix": "PASS"}, "runtime::tests::inject::pop_n_drains_on_drop": {"run": "PASS", "test": "NONE", "fix": "PASS"}, "task::local::tests::wakes_to_local_queue": {"run": "PASS", "test": "NONE", "fix": "PASS"}, "sync::tests::semaphore_batch::close_semaphore_notifies_permit1": {"run": "PASS", "test": "NONE", "fix": "PASS"}, "runtime::tests::queue::overflow": {"run": "PASS", "test": "NONE", "fix": "PASS"}, "open_with_open_options_and_read": {"run": "PASS", "test": "NONE", "fix": "PASS"}}
{"passed_count": 162, "failed_count": 1, "skipped_count": 0, "passed_tests": ["signal::unix::tests::into_c_int", "sync::rwlock::bounds", "runtime::tests::inject::push_and_pop", "util::memchr::tests::memchr_all", "open_options_write", "signal::reusable_box::test::test_different_futures", "path_read_write", "io::util::lines::tests::assert_unpin", "sync::tests::semaphore_batch::cancel_acquire_releases_permits", "open_options_custom_flags_linux", "basic_write", "sync::tests::semaphore_batch::try_acquire_one_available", "signal::registry::tests::broadcast_returns_if_at_least_one_event_fired", "pin", "sync::tests::semaphore_batch::poll_acquire_many_unavailable", "sync::broadcast::tests::receiver_count_on_channel_constructor", "sync::tests::semaphore_batch::release_permits_at_drop", "basic_read", "runtime::time::wheel::level::test::test_slot_for", "fs::file::tests::read_err_then_read_success", "file_debug_fmt", "fs::file::tests::incomplete_read_followed_by_flush", "task::local::tests::local_current_thread_scheduler", "process::test::no_kill_if_already_killed", "remove", "sync::mpsc::block::assert_no_stack_overflow", "read_file_from_unix_fd", "process::imp::orphan::test::no_reap_if_no_signal_received", "fs::file::tests::open_set_len_ok", "sync::tests::semaphore_batch::close_semaphore_notifies_permit2", "util::memchr::tests::memchr_test", "fs::file::tests::incomplete_partial_read_followed_by_write", "fs::file::tests::open_set_len_err", "fs::file::tests::sync_all_ordered_after_write", "fs::file::tests::read_with_smaller_buf", "io::util::buf_reader::tests::assert_unpin", "runtime::time::tests::poll_process_levels_targeted", "fs::file::tests::incomplete_read_followed_by_write", "open_options_create", "unix_fd_is_valid", "fs::file::tests::sync_data_ordered_after_write", "util::linked_list::tests::push_pop_push_pop", "runtime::time::tests::single_timer", "sync::tests::semaphore_batch::max_permits_doesnt_panic", "process::imp::orphan::test::does_nothing_if_signal_could_not_be_registered", "signal::unix::tests::signal_enable_error_on_forbidden_input", "io::stdio_common::tests::test_pseudo_text", "runtime::scheduler::multi_thread::queue::test_local_queue_capacity", "sync::tests::notify::notify_clones_waker_before_lock", "io::util::sink::tests::assert_unpin", "runtime::tests::inject::push_batch_and_pop", "fs::file::tests::write_seek_flush_err", "sync::tests::semaphore_batch::poll_acquire_many_available", "open_options_create_new", "fs::file::tests::read_with_bigger_buf", "open_options_truncate", "sync::broadcast::tests::receiver_count_on_sender_constructor", "signal::reusable_box::test::test_different_sizes", "util::linked_list::tests::const_new", "sync::tests::semaphore_batch::try_acquire_one_unavailable", "sync::tests::semaphore_batch::try_acquire_many_available", "runtime::scheduler::multi_thread::idle::test_state", "fs::file::tests::flush_while_idle", "runtime::tests::queue::steal_batch", "process::imp::reap::test::drop_reaps_if_possible", "canonicalize_root_dir_unix", "util::linked_list::tests::count", "write_into_std_immediate", "open_with_open_options_and_read", "io::util::buf_stream::tests::assert_unpin", "process::test::kills_on_drop_if_specified", "build_dir_mode_read_only", "fs::file::tests::open_write", "sync::tests::semaphore_batch::poll_acquire_one_zero_permits", "runtime::tests::queue::fits_256_one_at_a_time", "io::util::split::tests::assert_unpin", "signal::unix::tests::from_c_int", "runtime::task::core::header_lte_cache_line", "fs::file::tests::read_twice_before_dispatch", "runtime::coop::test::budgeting", "basic_write_and_shutdown", "copy", "create_dir", "io::util::repeat::tests::assert_unpin", "fs::file::tests::write_seek_write_err", "fs::file::tests::open_read", "io::util::take::tests::assert_unpin", "util::linked_list::tests::remove_by_address", "coop", "process::imp::reap::test::drop_enqueues_orphan_if_wait_fails", "runtime::tests::queue::stress1", "sync::tests::semaphore_batch::poll_acquire_one_available", "sync::tests::atomic_waker::basic_usage", "test_symlink", "io::util::buf_writer::tests::assert_unpin", "open_options_append", "process::test::no_kill_if_reaped", "io::stdio_common::tests::test_splitter", "fs::file::tests::write_read_flush_err", "runtime::task::list::tests::test_id_not_broken", "util::linked_list::tests::push_and_drain", "sync::tests::notify::notify_waiters_handles_panicking_waker", "runtime::time::wheel::test::test_level_for", "fs::file::tests::write_write_err", "signal::registry::tests::record_invalid_event_does_nothing", "runtime::time::tests::reset_future", "echo_server", "sync::tests::semaphore_batch::close_semaphore_prevents_acquire", "read_dir_entry_info", "io::util::chain::tests::assert_unpin", "process::imp::reap::test::kill", "sync::tests::atomic_waker::wake_without_register", "test_hard_link", "sync::mutex::bounds", "fs::file::tests::write_read_write_err", "fs::file::tests::incomplete_flush_followed_by_write", "write_into_std", "runtime::time::tests::change_waker", "process::imp::reap::test::reaper", "util::idle_notified_set::tests::join_set_test", "runtime::tests::queue::stress2", "signal::registry::tests::smoke", "io::util::empty::tests::assert_unpin", "runtime::time::tests::poll_process_levels", "sync::tests::notify::notify_simple", "fs::file::tests::sync_data_err_ordered_after_write", "sync::tests::atomic_waker::atomic_waker_panic_safe", "sync::tests::notify::watch_test", "signal::reusable_box::test::test_zero_sized", "write_to_clone", "sync::semaphore::bounds", "compile_fail_full", "fs::file::tests::busy_file_seek_error", "sync::tests::semaphore_batch::poll_acquire_one_unavailable", "process::test::no_kill_on_drop_by_default", "signal::unix::tests::signal_enable_error_on_invalid_input", "io::util::copy_buf::tests::assert_unpin", "copy_permissions", "process::imp::orphan::test::does_not_register_signal_if_queue_empty", "process::imp::orphan::test::no_reap_if_signal_lock_held", "fs::file::tests::write_twice_before_dispatch", "fs::file::tests::read_err", "fs::file::tests::partial_read_set_len_ok", "read_inherent", "build_dir", "read_file_from_std", "runtime::tests::queue::fits_256_all_at_once", "fs::file::tests::write_with_buffer_larger_than_max", "runtime::time::tests::drop_timer", "sync::tests::semaphore_batch::try_acquire_many_unavailable", "fs::file::tests::sync_all_err_ordered_after_write", "fs::file::tests::read_with_buffer_larger_than_max", "util::memchr::tests::memchr_empty", "runtime::tests::task_combinations::test_combinations", "process::imp::orphan::test::drain_attempts_a_single_reap_of_all_queued_orphans", "rewind_seek_position", "runtime::tests::queue::fits_256_all_in_chunks", "runtime::tests::inject::pop_n_drains_on_drop", "task::local::tests::wakes_to_local_queue", "sync::tests::semaphore_batch::close_semaphore_notifies_permit1", "runtime::tests::queue::overflow", "create_all"], "failed_tests": ["open_options_mode"], "skipped_tests": []}
{"passed_count": 0, "failed_count": 0, "skipped_count": 0, "passed_tests": [], "failed_tests": [], "skipped_tests": []}
{"passed_count": 162, "failed_count": 1, "skipped_count": 0, "passed_tests": ["signal::unix::tests::into_c_int", "sync::rwlock::bounds", "runtime::tests::inject::push_and_pop", "util::memchr::tests::memchr_all", "open_options_write", "signal::reusable_box::test::test_different_futures", "path_read_write", "io::util::lines::tests::assert_unpin", "sync::tests::semaphore_batch::cancel_acquire_releases_permits", "open_options_custom_flags_linux", "basic_write", "sync::tests::semaphore_batch::try_acquire_one_available", "signal::registry::tests::broadcast_returns_if_at_least_one_event_fired", "pin", "sync::tests::semaphore_batch::poll_acquire_many_unavailable", "sync::broadcast::tests::receiver_count_on_channel_constructor", "sync::tests::semaphore_batch::release_permits_at_drop", "basic_read", "runtime::time::wheel::level::test::test_slot_for", "fs::file::tests::read_err_then_read_success", "file_debug_fmt", "fs::file::tests::incomplete_read_followed_by_flush", "task::local::tests::local_current_thread_scheduler", "process::test::no_kill_if_already_killed", "remove", "sync::mpsc::block::assert_no_stack_overflow", "read_file_from_unix_fd", "process::imp::orphan::test::no_reap_if_no_signal_received", "fs::file::tests::open_set_len_ok", "sync::tests::semaphore_batch::close_semaphore_notifies_permit2", "fs::file::tests::incomplete_partial_read_followed_by_write", "util::memchr::tests::memchr_test", "fs::file::tests::open_set_len_err", "fs::file::tests::read_with_smaller_buf", "fs::file::tests::sync_all_ordered_after_write", "fs::file::tests::incomplete_read_followed_by_write", "io::util::buf_reader::tests::assert_unpin", "runtime::time::tests::poll_process_levels_targeted", "open_options_create", "unix_fd_is_valid", "fs::file::tests::sync_data_ordered_after_write", "runtime::time::tests::single_timer", "util::linked_list::tests::push_pop_push_pop", "process::imp::orphan::test::does_nothing_if_signal_could_not_be_registered", "sync::tests::semaphore_batch::max_permits_doesnt_panic", "signal::unix::tests::signal_enable_error_on_forbidden_input", "io::stdio_common::tests::test_pseudo_text", "runtime::scheduler::multi_thread::queue::test_local_queue_capacity", "fs::file::tests::write_seek_flush_err", "runtime::tests::inject::push_batch_and_pop", "io::util::sink::tests::assert_unpin", "sync::tests::notify::notify_clones_waker_before_lock", "sync::tests::semaphore_batch::poll_acquire_many_available", "open_options_create_new", "fs::file::tests::read_with_bigger_buf", "open_options_truncate", "sync::broadcast::tests::receiver_count_on_sender_constructor", "signal::reusable_box::test::test_different_sizes", "util::linked_list::tests::const_new", "sync::tests::semaphore_batch::try_acquire_one_unavailable", "fs::file::tests::flush_while_idle", "runtime::scheduler::multi_thread::idle::test_state", "sync::tests::semaphore_batch::try_acquire_many_available", "runtime::tests::queue::steal_batch", "process::imp::reap::test::drop_reaps_if_possible", "canonicalize_root_dir_unix", "util::linked_list::tests::count", "write_into_std_immediate", "open_with_open_options_and_read", "io::util::buf_stream::tests::assert_unpin", "process::test::kills_on_drop_if_specified", "build_dir_mode_read_only", "fs::file::tests::open_write", "sync::tests::semaphore_batch::poll_acquire_one_zero_permits", "runtime::tests::queue::fits_256_one_at_a_time", "io::util::split::tests::assert_unpin", "signal::unix::tests::from_c_int", "fs::file::tests::read_twice_before_dispatch", "runtime::task::core::header_lte_cache_line", "runtime::coop::test::budgeting", "basic_write_and_shutdown", "copy", "create_dir", "io::util::repeat::tests::assert_unpin", "fs::file::tests::write_seek_write_err", "fs::file::tests::open_read", "io::util::take::tests::assert_unpin", "util::linked_list::tests::remove_by_address", "coop", "process::imp::reap::test::drop_enqueues_orphan_if_wait_fails", "runtime::tests::queue::stress1", "sync::tests::semaphore_batch::poll_acquire_one_available", "sync::tests::atomic_waker::basic_usage", "test_symlink", "io::util::buf_writer::tests::assert_unpin", "open_options_append", "process::test::no_kill_if_reaped", "io::stdio_common::tests::test_splitter", "fs::file::tests::write_read_flush_err", "runtime::task::list::tests::test_id_not_broken", "util::linked_list::tests::push_and_drain", "sync::tests::notify::notify_waiters_handles_panicking_waker", "runtime::time::wheel::test::test_level_for", "fs::file::tests::write_write_err", "signal::registry::tests::record_invalid_event_does_nothing", "runtime::time::tests::reset_future", "echo_server", "sync::tests::semaphore_batch::close_semaphore_prevents_acquire", "read_dir_entry_info", "io::util::chain::tests::assert_unpin", "process::imp::reap::test::kill", "sync::tests::atomic_waker::wake_without_register", "test_hard_link", "fs::file::tests::write_read_write_err", "sync::mutex::bounds", "fs::file::tests::incomplete_flush_followed_by_write", "write_into_std", "runtime::time::tests::change_waker", "process::imp::reap::test::reaper", "util::idle_notified_set::tests::join_set_test", "runtime::tests::queue::stress2", "signal::registry::tests::smoke", "io::util::empty::tests::assert_unpin", "runtime::time::tests::poll_process_levels", "sync::tests::notify::notify_simple", "fs::file::tests::sync_data_err_ordered_after_write", "sync::tests::atomic_waker::atomic_waker_panic_safe", "sync::tests::notify::watch_test", "signal::reusable_box::test::test_zero_sized", "write_to_clone", "sync::semaphore::bounds", "compile_fail_full", "fs::file::tests::busy_file_seek_error", "sync::tests::semaphore_batch::poll_acquire_one_unavailable", "process::test::no_kill_on_drop_by_default", "signal::unix::tests::signal_enable_error_on_invalid_input", "io::util::copy_buf::tests::assert_unpin", "copy_permissions", "process::imp::orphan::test::does_not_register_signal_if_queue_empty", "process::imp::orphan::test::no_reap_if_signal_lock_held", "fs::file::tests::write_twice_before_dispatch", "fs::file::tests::read_err", "fs::file::tests::partial_read_set_len_ok", "build_dir", "read_inherent", "read_file_from_std", "runtime::tests::queue::fits_256_all_at_once", "fs::file::tests::write_with_buffer_larger_than_max", "runtime::time::tests::drop_timer", "fs::file::tests::sync_all_err_ordered_after_write", "sync::tests::semaphore_batch::try_acquire_many_unavailable", "fs::file::tests::read_with_buffer_larger_than_max", "util::memchr::tests::memchr_empty", "runtime::tests::task_combinations::test_combinations", "process::imp::orphan::test::drain_attempts_a_single_reap_of_all_queued_orphans", "rewind_seek_position", "runtime::tests::queue::fits_256_all_in_chunks", "runtime::tests::inject::pop_n_drains_on_drop", "sync::tests::semaphore_batch::close_semaphore_notifies_permit1", "task::local::tests::wakes_to_local_queue", "runtime::tests::queue::overflow", "create_all"], "failed_tests": ["open_options_mode"], "skipped_tests": []}