1b8a62b91Sopenharmony_ci#[cfg(any( 2b8a62b91Sopenharmony_ci all(target_os = "android", target_pointer_width = "64"), 3b8a62b91Sopenharmony_ci target_os = "linux", 4b8a62b91Sopenharmony_ci))] 5b8a62b91Sopenharmony_ciuse rustix::param::linux_hwcap; 6b8a62b91Sopenharmony_ciuse rustix::param::{clock_ticks_per_second, page_size}; 7b8a62b91Sopenharmony_ci 8b8a62b91Sopenharmony_ci#[test] 9b8a62b91Sopenharmony_cifn test_page_size() { 10b8a62b91Sopenharmony_ci let size = page_size(); 11b8a62b91Sopenharmony_ci assert_ne!(size, 0); 12b8a62b91Sopenharmony_ci assert!(size.is_power_of_two()); 13b8a62b91Sopenharmony_ci assert_eq!(size, page_size()); 14b8a62b91Sopenharmony_ci assert_eq!(size, unsafe { libc::sysconf(libc::_SC_PAGESIZE) as usize }); 15b8a62b91Sopenharmony_ci} 16b8a62b91Sopenharmony_ci 17b8a62b91Sopenharmony_ci#[test] 18b8a62b91Sopenharmony_cifn test_clock_ticks_per_second() { 19b8a62b91Sopenharmony_ci let size = clock_ticks_per_second(); 20b8a62b91Sopenharmony_ci assert_ne!(size, 0); 21b8a62b91Sopenharmony_ci assert_eq!(size, unsafe { libc::sysconf(libc::_SC_CLK_TCK) as u64 }); 22b8a62b91Sopenharmony_ci} 23b8a62b91Sopenharmony_ci 24b8a62b91Sopenharmony_ci#[cfg(any( 25b8a62b91Sopenharmony_ci all(target_os = "android", target_pointer_width = "64"), 26b8a62b91Sopenharmony_ci target_os = "linux", 27b8a62b91Sopenharmony_ci))] 28b8a62b91Sopenharmony_ci#[test] 29b8a62b91Sopenharmony_cifn test_linux_hwcap() { 30b8a62b91Sopenharmony_ci weak!(fn getauxval(libc::c_ulong) -> libc::c_ulong); 31b8a62b91Sopenharmony_ci 32b8a62b91Sopenharmony_ci if let Some(libc_getauxval) = getauxval.get() { 33b8a62b91Sopenharmony_ci let (_hwcap, hwcap2) = linux_hwcap(); 34b8a62b91Sopenharmony_ci 35b8a62b91Sopenharmony_ci // GLIBC seems to return a different value than `LD_SHOW_AUXV=1` reports. 36b8a62b91Sopenharmony_ci #[cfg(not(target_env = "gnu"))] 37b8a62b91Sopenharmony_ci assert_eq!(_hwcap, unsafe { libc_getauxval(libc::AT_HWCAP) } as usize); 38b8a62b91Sopenharmony_ci 39b8a62b91Sopenharmony_ci assert_eq!(hwcap2, unsafe { libc_getauxval(libc::AT_HWCAP2) } as usize); 40b8a62b91Sopenharmony_ci } 41b8a62b91Sopenharmony_ci} 42