Skip to content

Commit 78cfd02

Browse files
bilelmoussaouisdroege
authored andcommitted
gio: Move test to gio-unix
As it uses gio::FdMessage which was moved to gio-unix.
1 parent 80d1d35 commit 78cfd02

File tree

4 files changed

+76
-99
lines changed

4 files changed

+76
-99
lines changed

gio-unix/Gir.toml

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -66,6 +66,9 @@ manual_traits = ["DesktopAppInfoExtManual"]
6666
name = "GioUnix.FDMessage"
6767
status = "generate"
6868
manual_traits = ["FDMessageExtManual"]
69+
[[object.function]]
70+
pattern = "(append_fd|steal_fds)"
71+
manual = true
6972

7073
[[object]]
7174
name = "GioUnix.FileDescriptorBased"

gio-unix/src/auto/fd_message.rs

Lines changed: 0 additions & 30 deletions
Original file line numberDiff line numberDiff line change
@@ -43,21 +43,6 @@ impl Default for FDMessage {
4343
}
4444

4545
pub trait FDMessageExt: IsA<FDMessage> + 'static {
46-
#[doc(alias = "g_unix_fd_message_append_fd")]
47-
fn append_fd(&self, fd: i32) -> Result<(), glib::Error> {
48-
unsafe {
49-
let mut error = std::ptr::null_mut();
50-
let is_ok =
51-
ffi::g_unix_fd_message_append_fd(self.as_ref().to_glib_none().0, fd, &mut error);
52-
debug_assert_eq!(is_ok == glib::ffi::GFALSE, !error.is_null());
53-
if error.is_null() {
54-
Ok(())
55-
} else {
56-
Err(from_glib_full(error))
57-
}
58-
}
59-
}
60-
6146
#[doc(alias = "g_unix_fd_message_get_fd_list")]
6247
#[doc(alias = "get_fd_list")]
6348
#[doc(alias = "fd-list")]
@@ -68,21 +53,6 @@ pub trait FDMessageExt: IsA<FDMessage> + 'static {
6853
))
6954
}
7055
}
71-
72-
#[doc(alias = "g_unix_fd_message_steal_fds")]
73-
fn steal_fds(&self) -> Vec<i32> {
74-
unsafe {
75-
let mut length = std::mem::MaybeUninit::uninit();
76-
let ret = FromGlibContainer::from_glib_full_num(
77-
ffi::g_unix_fd_message_steal_fds(
78-
self.as_ref().to_glib_none().0,
79-
length.as_mut_ptr(),
80-
),
81-
length.assume_init() as _,
82-
);
83-
ret
84-
}
85-
}
8656
}
8757

8858
impl<O: IsA<FDMessage>> FDMessageExt for O {}

gio-unix/src/fd_message.rs

Lines changed: 73 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -41,3 +41,76 @@ pub trait FDMessageExtManual: IsA<FDMessage> + Sized {
4141
}
4242

4343
impl<O: IsA<FDMessage>> FDMessageExtManual for O {}
44+
45+
#[cfg(test)]
46+
mod tests {
47+
use std::{
48+
io,
49+
os::unix::io::{AsRawFd, FromRawFd, OwnedFd},
50+
};
51+
52+
use crate::prelude::*;
53+
use gio::prelude::UnixFDListExt;
54+
use gio::Cancellable;
55+
use gio::Socket;
56+
use glib::prelude::Cast;
57+
58+
#[test]
59+
fn socket_messages() {
60+
let mut fds = [0 as libc::c_int; 2];
61+
let (out_sock, in_sock) = unsafe {
62+
let ret = libc::socketpair(libc::AF_UNIX, libc::SOCK_STREAM, 0, fds.as_mut_ptr());
63+
if ret != 0 {
64+
panic!("{}", io::Error::last_os_error());
65+
}
66+
(
67+
Socket::from_fd(OwnedFd::from_raw_fd(fds[0])).unwrap(),
68+
Socket::from_fd(OwnedFd::from_raw_fd(fds[1])).unwrap(),
69+
)
70+
};
71+
72+
let fd_msg = crate::FDMessage::new();
73+
fd_msg.append_fd(out_sock.as_raw_fd()).unwrap();
74+
let vs = [gio::OutputVector::new(&[0])];
75+
let ctrl_msgs = [fd_msg.upcast()];
76+
let mut out_msg = [gio::OutputMessage::new(
77+
gio::SocketAddress::NONE,
78+
vs.as_slice(),
79+
ctrl_msgs.as_slice(),
80+
)];
81+
let written = gio::prelude::SocketExtManual::send_messages(
82+
&out_sock,
83+
out_msg.as_mut_slice(),
84+
0,
85+
Cancellable::NONE,
86+
)
87+
.unwrap();
88+
assert_eq!(written, 1);
89+
assert_eq!(out_msg[0].bytes_sent(), 1);
90+
91+
let mut v = [0u8];
92+
let mut vs = [gio::InputVector::new(v.as_mut_slice())];
93+
let mut ctrl_msgs = gio::SocketControlMessages::new();
94+
let mut in_msg = [gio::InputMessage::new(
95+
None,
96+
vs.as_mut_slice(),
97+
Some(&mut ctrl_msgs),
98+
)];
99+
let received = gio::prelude::SocketExtManual::receive_messages(
100+
&in_sock,
101+
in_msg.as_mut_slice(),
102+
0,
103+
Cancellable::NONE,
104+
)
105+
.unwrap();
106+
107+
assert_eq!(received, 1);
108+
assert_eq!(in_msg[0].bytes_received(), 1);
109+
assert_eq!(ctrl_msgs.len(), 1);
110+
let fds = ctrl_msgs[0]
111+
.downcast_ref::<crate::FDMessage>()
112+
.unwrap()
113+
.fd_list();
114+
assert_eq!(fds.length(), 1);
115+
}
116+
}

gio/src/socket.rs

Lines changed: 0 additions & 69 deletions
Original file line numberDiff line numberDiff line change
@@ -825,75 +825,6 @@ pub type RawSocket = *mut std::os::raw::c_void;
825825

826826
#[cfg(test)]
827827
mod tests {
828-
/*
829-
#[test]
830-
#[cfg(unix)]
831-
fn socket_messages() {
832-
use std::{
833-
io,
834-
os::unix::io::{AsRawFd, FromRawFd, OwnedFd},
835-
};
836-
837-
use super::Socket;
838-
use crate::{prelude::*, Cancellable, UnixFDMessage};
839-
840-
let mut fds = [0 as libc::c_int; 2];
841-
let (out_sock, in_sock) = unsafe {
842-
let ret = libc::socketpair(libc::AF_UNIX, libc::SOCK_STREAM, 0, fds.as_mut_ptr());
843-
if ret != 0 {
844-
panic!("{}", io::Error::last_os_error());
845-
}
846-
(
847-
Socket::from_fd(OwnedFd::from_raw_fd(fds[0])).unwrap(),
848-
Socket::from_fd(OwnedFd::from_raw_fd(fds[1])).unwrap(),
849-
)
850-
};
851-
852-
let fd_msg = UnixFDMessage::new();
853-
fd_msg.append_fd(out_sock.as_raw_fd()).unwrap();
854-
let vs = [super::OutputVector::new(&[0])];
855-
let ctrl_msgs = [fd_msg.upcast()];
856-
let mut out_msg = [super::OutputMessage::new(
857-
crate::SocketAddress::NONE,
858-
vs.as_slice(),
859-
ctrl_msgs.as_slice(),
860-
)];
861-
let written = super::SocketExtManual::send_messages(
862-
&out_sock,
863-
out_msg.as_mut_slice(),
864-
0,
865-
Cancellable::NONE,
866-
)
867-
.unwrap();
868-
assert_eq!(written, 1);
869-
assert_eq!(out_msg[0].bytes_sent(), 1);
870-
871-
let mut v = [0u8];
872-
let mut vs = [super::InputVector::new(v.as_mut_slice())];
873-
let mut ctrl_msgs = super::SocketControlMessages::new();
874-
let mut in_msg = [super::InputMessage::new(
875-
None,
876-
vs.as_mut_slice(),
877-
Some(&mut ctrl_msgs),
878-
)];
879-
let received = super::SocketExtManual::receive_messages(
880-
&in_sock,
881-
in_msg.as_mut_slice(),
882-
0,
883-
Cancellable::NONE,
884-
)
885-
.unwrap();
886-
887-
assert_eq!(received, 1);
888-
assert_eq!(in_msg[0].bytes_received(), 1);
889-
assert_eq!(ctrl_msgs.len(), 1);
890-
let fds = ctrl_msgs[0]
891-
.downcast_ref::<UnixFDMessage>()
892-
.unwrap()
893-
.fd_list();
894-
assert_eq!(fds.length(), 1);
895-
}
896-
*/
897828
#[test]
898829
#[cfg(unix)]
899830
fn dgram_socket_messages() {

0 commit comments

Comments
 (0)