Move prctl test to the same file as other libc tests.

This commit is contained in:
Vytautas Astrauskas 2020-04-26 14:56:31 -07:00
parent 60cd8aa4b0
commit 39efdf31cf
2 changed files with 17 additions and 18 deletions

View file

@ -1,18 +0,0 @@
// ignore-windows: No libc on Windows
// ignore-macos: No prctl on MacOS
#![feature(rustc_private)]
extern crate libc;
use std::ffi::CString;
fn main() {
unsafe {
let thread_name = CString::new("hello").expect("CString::new failed");
assert_eq!(libc::prctl(libc::PR_SET_NAME, thread_name.as_ptr() as libc::c_long, 0 as libc::c_long, 0 as libc::c_long, 0 as libc::c_long), 0);
let mut buf = [0; 6];
assert_eq!(libc::prctl(libc::PR_GET_NAME, buf.as_mut_ptr() as libc::c_long, 0 as libc::c_long, 0 as libc::c_long, 0 as libc::c_long), 0);
assert_eq!(thread_name.as_bytes_with_nul(), buf);
}
}

View file

@ -141,6 +141,20 @@ fn test_rwlock_libc_static_initializer() {
}
}
/// Test whether the `prctl` shim correctly sets the thread name.
///
/// Note: `prctl` exists only on Linux.
fn test_prctl_thread_name() {
use std::ffi::CString;
unsafe {
let thread_name = CString::new("hello").expect("CString::new failed");
assert_eq!(libc::prctl(libc::PR_SET_NAME, thread_name.as_ptr() as libc::c_long, 0 as libc::c_long, 0 as libc::c_long, 0 as libc::c_long), 0);
let mut buf = [0; 6];
assert_eq!(libc::prctl(libc::PR_GET_NAME, buf.as_mut_ptr() as libc::c_long, 0 as libc::c_long, 0 as libc::c_long, 0 as libc::c_long), 0);
assert_eq!(thread_name.as_bytes_with_nul(), buf);
}
}
fn main() {
#[cfg(target_os = "linux")]
test_posix_fadvise();
@ -152,4 +166,7 @@ fn main() {
#[cfg(target_os = "linux")]
test_mutex_libc_static_initializer_recursive();
#[cfg(target_os = "linux")]
test_prctl_thread_name();
}