diff options
author | 2019-09-10 10:53:26 -0700 | |
---|---|---|
committer | 2019-09-10 10:53:39 -0700 | |
commit | 480ed7acdba001a79bb0a7bfa12f43ffdbaaa6cd (patch) | |
tree | be0ce7d4931de48b021fb143936c859391cd2874 /src | |
parent | 3bb2dc25a871a992f35b605e128cc7390e0d20bd (diff) | |
download | rust-x86-480ed7acdba001a79bb0a7bfa12f43ffdbaaa6cd.tar.gz rust-x86-480ed7acdba001a79bb0a7bfa12f43ffdbaaa6cd.tar.zst rust-x86-480ed7acdba001a79bb0a7bfa12f43ffdbaaa6cd.zip |
Fix rdtsc/p tests.
Diffstat (limited to 'src')
-rw-r--r-- | src/time.rs | 22 |
1 files changed, 18 insertions, 4 deletions
diff --git a/src/time.rs b/src/time.rs index eb0111b..e51cf08 100644 --- a/src/time.rs +++ b/src/time.rs @@ -43,15 +43,29 @@ mod test { #[test] fn check_rdtsc() { - unsafe { - assert!(rdtsc() > 0, "rdtsc returned 0, unlikely!"); + let cpuid = crate::cpuid::CpuId::new(); + let has_tsc = cpuid + .get_feature_info() + .map_or(false, |finfo| finfo.has_tsc()); + + if has_tsc { + unsafe { + assert!(rdtsc() > 0, "rdtsc returned 0, unlikely!"); + } } } #[test] fn check_rdtscp() { - unsafe { - assert!(rdtscp() > 0, "rdtscp returned 0, unlikely!"); + let cpuid = crate::cpuid::CpuId::new(); + let has_tsc = cpuid + .get_feature_info() + .map_or(false, |finfo| finfo.has_tsc()); + + if has_tsc { + unsafe { + assert!(rdtscp() > 0, "rdtscp returned 0, unlikely!"); + } } } } |