aboutsummaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorGravatar Gerd Zellweger <mail@gerdzellweger.com> 2019-09-10 10:53:26 -0700
committerGravatar Gerd Zellweger <mail@gerdzellweger.com> 2019-09-10 10:53:39 -0700
commit480ed7acdba001a79bb0a7bfa12f43ffdbaaa6cd (patch)
treebe0ce7d4931de48b021fb143936c859391cd2874 /src
parent3bb2dc25a871a992f35b605e128cc7390e0d20bd (diff)
downloadrust-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.rs22
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!");
+ }
}
}
}