diff options
| author | Ralf Jung <post@ralfj.de> | 2024-08-18 10:49:56 +0200 |
|---|---|---|
| committer | Ralf Jung <post@ralfj.de> | 2024-08-18 10:49:56 +0200 |
| commit | e614d7d51b4f5a8fe65d0fb7ea2e2b7950507aff (patch) | |
| tree | 1dad51ea9d4bf85929c097ff976d11ee889aa6a9 /src | |
| parent | 8821108bf1f2139d131a8eb0475bb4765f345c9f (diff) | |
| download | rust-e614d7d51b4f5a8fe65d0fb7ea2e2b7950507aff.tar.gz rust-e614d7d51b4f5a8fe65d0fb7ea2e2b7950507aff.zip | |
epoll test_socketpair_read: explicitly check real and Miri behavior
Diffstat (limited to 'src')
| -rw-r--r-- | src/tools/miri/tests/pass-dep/libc/libc-epoll.rs | 12 |
1 files changed, 9 insertions, 3 deletions
diff --git a/src/tools/miri/tests/pass-dep/libc/libc-epoll.rs b/src/tools/miri/tests/pass-dep/libc/libc-epoll.rs index 71f0e832afb..5bc6779bdfb 100644 --- a/src/tools/miri/tests/pass-dep/libc/libc-epoll.rs +++ b/src/tools/miri/tests/pass-dep/libc/libc-epoll.rs @@ -478,11 +478,17 @@ fn test_socketpair_read() { assert_eq!(res, 3); assert_eq!(buf, "abc".as_bytes()); - // Notification will be provided. - // But in real system, no notification will be provided here. + // Notification will be provided in Miri. + // But in real systems, no notification will be provided here, since Linux prefers to avoid + // wakeups that are likely to lead to only small amounts of data being read/written. + // We make the test work in both cases, thus documenting the difference in behavior. let expected_event = u32::try_from(libc::EPOLLOUT).unwrap(); let expected_value = fds[1] as u64; - check_epoll_wait::<8>(epfd, &[(expected_event, expected_value)]); + if cfg!(miri) { + check_epoll_wait::<8>(epfd, &[(expected_event, expected_value)]); + } else { + check_epoll_wait::<8>(epfd, &[]); + } // Read until the buffer is empty. let mut buf: [u8; 2] = [0; 2]; |
