8acc73d774
Phase 1 (Runtime Substrate): 4 check binaries, --probe, POSIX tests Phase 2 (Wayland Compositor): bounded scaffold, zero warnings Phase 3 (KWin Session): preflight checker (KWin stub, gated on Qt6Quick) Phase 4 (KDE Plasma): 18 KF6 enabled, preflight checker Phase 5 (Hardware GPU): DRM/firmware/Mesa preflight checker Build: zero warnings, all scripts syntax-clean. Oracle-verified.
42 lines
1.1 KiB
Rust
42 lines
1.1 KiB
Rust
use std::{
|
|
fs::File,
|
|
io::{self, prelude::*},
|
|
os::unix::io::{AsRawFd, FromRawFd, RawFd},
|
|
};
|
|
|
|
fn from_syscall_error(error: syscall::Error) -> io::Error {
|
|
io::Error::from_raw_os_error(error.errno as i32)
|
|
}
|
|
fn dup(file: &File, buf: &str) -> io::Result<File> {
|
|
let stream =
|
|
syscall::dup(file.as_raw_fd() as usize, buf.as_bytes()).map_err(from_syscall_error)?;
|
|
Ok(unsafe { File::from_raw_fd(stream as RawFd) })
|
|
}
|
|
|
|
fn main() -> io::Result<()> {
|
|
let mut buf = [0; 5];
|
|
let server = File::create("chan:")?;
|
|
|
|
let mut client = dup(&server, "connect")?;
|
|
let mut stream = dup(&server, "listen")?;
|
|
|
|
println!("Testing basic I/O...");
|
|
|
|
stream.write(b"abc")?;
|
|
stream.flush()?;
|
|
println!("-> Wrote message");
|
|
|
|
assert_eq!(client.read(&mut buf)?, 3);
|
|
assert_eq!(&buf[..3], b"abc");
|
|
println!("-> Read message");
|
|
|
|
println!("Testing connecting to unnamed socket by name (makes no sense)...");
|
|
assert_eq!(
|
|
File::open("chan:").unwrap_err().kind(),
|
|
io::ErrorKind::NotFound
|
|
);
|
|
|
|
println!("Everything tested!");
|
|
Ok(())
|
|
}
|