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