MCPcopy Create free account
hub / github.com/bytecodealliance/rustix / test_libc_layout_compatibility

Function test_libc_layout_compatibility

src/kernel_sigset.rs:258–325  ·  view source on GitHub ↗
()

Source from the content-addressed store, hash-verified

256 // matches as well.
257 #[test]
258 fn test_libc_layout_compatibility() {
259 use crate::utils::as_ptr;
260
261 let mut lc = unsafe { core::mem::zeroed::<libc::sigset_t>() };
262 let mut ru = KernelSigSet::empty();
263 let r = unsafe { libc::sigemptyset(&mut lc) };
264
265 assert_eq!(r, 0);
266 assert_eq!(
267 unsafe {
268 libc::memcmp(
269 as_ptr(&lc).cast(),
270 as_ptr(&ru).cast(),
271 core::mem::size_of::<KernelSigSet>(),
272 )
273 },
274 0
275 );
276
277 for sig in libc_sigs() {
278 ru.insert(sig);
279 assert_ne!(
280 unsafe {
281 libc::memcmp(
282 as_ptr(&lc).cast(),
283 as_ptr(&ru).cast(),
284 core::mem::size_of::<KernelSigSet>(),
285 )
286 },
287 0
288 );
289 let r = unsafe { libc::sigaddset(&mut lc, sig.as_raw()) };
290 assert_eq!(r, 0);
291 assert_eq!(
292 unsafe {
293 libc::memcmp(
294 as_ptr(&lc).cast(),
295 as_ptr(&ru).cast(),
296 core::mem::size_of::<KernelSigSet>(),
297 )
298 },
299 0
300 );
301 ru.remove(sig);
302 assert_ne!(
303 unsafe {
304 libc::memcmp(
305 as_ptr(&lc).cast(),
306 as_ptr(&ru).cast(),
307 core::mem::size_of::<KernelSigSet>(),
308 )
309 },
310 0
311 );
312 let r = unsafe { libc::sigdelset(&mut lc, sig.as_raw()) };
313 assert_eq!(r, 0);
314 assert_eq!(
315 unsafe {

Callers

nothing calls this directly

Calls 4

libc_sigsFunction · 0.85
insertMethod · 0.80
removeMethod · 0.80
as_rawMethod · 0.45

Tested by

no test coverage detected