Skip to content

Commit b5751f5

Browse files
remove cpuid template unit tests
The cpuid template unit tests were checking the bytes of each leaf and registers modified with set_cpuid_entries. Each operation on a register was duplicated in the tests which makes the unit tests hard to maintain. A better way to test if the appropriate features are disabled is using integration tests and check the presence/absance of certain features. The integration tests will be added in a future commit. Signed-off-by: Andreea Florescu <[email protected]>
1 parent 5e9e3a1 commit b5751f5

File tree

2 files changed

+0
-317
lines changed

2 files changed

+0
-317
lines changed

cpuid/src/template/c3.rs

Lines changed: 0 additions & 163 deletions
Original file line numberDiff line numberDiff line change
@@ -86,166 +86,3 @@ pub fn set_cpuid_entries(entries: &mut [kvm_cpuid_entry2]) {
8686
}
8787
}
8888
}
89-
90-
#[cfg(test)]
91-
mod tests {
92-
use super::*;
93-
use kvm_ioctls::CpuId;
94-
95-
#[cfg(any(target_arch = "x86", target_arch = "x86_64"))]
96-
#[test]
97-
#[allow(clippy::erasing_op)]
98-
fn test_c3_cpuid_template() {
99-
let mut kvm_cpuid = CpuId::new(5);
100-
{
101-
let entries = kvm_cpuid.mut_entries_slice();
102-
entries[0].function = 0x1;
103-
entries[0].ecx = 0b11;
104-
entries[0].edx = 0b111;
105-
}
106-
{
107-
let entries = kvm_cpuid.mut_entries_slice();
108-
entries[1].function = 0x7;
109-
entries[1].index = 0;
110-
entries[1].ebx = 0b11;
111-
entries[1].ecx = 0b111;
112-
}
113-
{
114-
let entries = kvm_cpuid.mut_entries_slice();
115-
entries[2].function = 0x7;
116-
// Something other than 0.
117-
entries[2].index = 2;
118-
}
119-
{
120-
let entries = kvm_cpuid.mut_entries_slice();
121-
entries[3].function = 0x8000_0001;
122-
entries[3].ecx = 0b11;
123-
entries[3].edx = 0b111;
124-
}
125-
{
126-
let entries = kvm_cpuid.mut_entries_slice();
127-
// Something other than 0x1, 0x7, 0x80000001.
128-
entries[4].function = 0x0;
129-
}
130-
131-
set_cpuid_entries(&mut kvm_cpuid.mut_entries_slice());
132-
133-
let cpuid_f1 = kvm_cpuid_entry2 {
134-
function: 1,
135-
index: 0,
136-
flags: 0,
137-
eax: 0
138-
& !(0b1111_1111 << leaf_0x1::eax::EXTENDED_FAMILY_ID_SHIFT)
139-
& !(0b1111 << leaf_0x1::eax::EXTENDED_PROCESSOR_MODEL_SHIFT)
140-
| 3 << leaf_0x1::eax::EXTENDED_PROCESSOR_MODEL_SHIFT
141-
& !(0b11 << leaf_0x1::eax::PROCESSOR_TYPE_SHIFT)
142-
& !(0b1111 << leaf_0x1::eax::PROCESSOR_FAMILY_SHIFT)
143-
| 6 << leaf_0x1::eax::PROCESSOR_FAMILY_SHIFT
144-
& !(0b1111 << leaf_0x1::eax::PROCESSOR_MODEL_SHIFT)
145-
| 14 << leaf_0x1::eax::PROCESSOR_MODEL_SHIFT & !(0b1111 as u32)
146-
| 4 as u32,
147-
ebx: 0,
148-
ecx: 0b11
149-
& !(1 << leaf_0x1::ecx::DTES64_SHIFT)
150-
& !(1 << leaf_0x1::ecx::MONITOR_SHIFT)
151-
& !(1 << leaf_0x1::ecx::DS_CPL_SHIFT)
152-
& !(1 << leaf_0x1::ecx::TM2_SHIFT)
153-
& !(1 << leaf_0x1::ecx::CNXT_ID)
154-
& !(1 << leaf_0x1::ecx::SDBG_SHIFT)
155-
& !(1 << leaf_0x1::ecx::FMA_SHIFT)
156-
& !(1 << leaf_0x1::ecx::XTPR_UPDATE_SHIFT)
157-
& !(1 << leaf_0x1::ecx::PDCM_SHIFT)
158-
& !(1 << leaf_0x1::ecx::MOVBE_SHIFT)
159-
& !(1 << leaf_0x1::ecx::OSXSAVE_SHIFT),
160-
edx: 0b111
161-
& !(1 << leaf_0x1::edx::PSN_SHIFT)
162-
& !(1 << leaf_0x1::edx::DS_SHIFT)
163-
& !(1 << leaf_0x1::edx::ACPI_SHIFT)
164-
& !(1 << leaf_0x1::edx::SS_SHIFT)
165-
& !(1 << leaf_0x1::edx::TM_SHIFT)
166-
& !(1 << leaf_0x1::edx::PBE_SHIFT),
167-
padding: [0, 0, 0],
168-
};
169-
{
170-
let entries = kvm_cpuid.mut_entries_slice();
171-
assert_eq!(entries[0], cpuid_f1);
172-
}
173-
let cpuid_f7_index0 = kvm_cpuid_entry2 {
174-
function: 0x7,
175-
index: 0,
176-
flags: 0,
177-
eax: 0,
178-
ebx: 0b11
179-
& !(1 << leaf_0x7::index0::ebx::SGX_SHIFT)
180-
& !(1 << leaf_0x7::index0::ebx::BMI1_SHIFT)
181-
& !(1 << leaf_0x7::index0::ebx::HLE_SHIFT)
182-
& !(1 << leaf_0x7::index0::ebx::AVX2_SHIFT)
183-
& !(1 << leaf_0x7::index0::ebx::FPDP_SHIFT)
184-
& !(1 << leaf_0x7::index0::ebx::BMI2_SHIFT)
185-
& !(1 << leaf_0x7::index0::ebx::INVPCID_SHIFT)
186-
& !(1 << leaf_0x7::index0::ebx::BMI1_SHIFT)
187-
& !(1 << leaf_0x7::index0::ebx::RTM_SHIFT)
188-
& !(1 << leaf_0x7::index0::ebx::RDT_M_SHIFT)
189-
& !(1 << leaf_0x7::index0::ebx::RDT_A_SHIFT)
190-
& !(1 << leaf_0x7::index0::ebx::AVX512F_SHIFT)
191-
& !(1 << leaf_0x7::index0::ebx::RDSEED_SHIFT)
192-
& !(1 << leaf_0x7::index0::ebx::ADX_SHIFT)
193-
& !(1 << leaf_0x7::index0::ebx::PT_SHIFT)
194-
& !(1 << leaf_0x7::index0::ebx::AVX512CD_SHIFT)
195-
& !(1 << leaf_0x7::index0::ebx::SHA_SHIFT),
196-
ecx: 0b111
197-
& !(1 << leaf_0x7::index0::ecx::RDPID_SHIFT)
198-
& !(1 << leaf_0x7::index0::ecx::SGX_LC_SHIFT),
199-
edx: 0,
200-
padding: [0, 0, 0],
201-
};
202-
{
203-
let entries = kvm_cpuid.mut_entries_slice();
204-
assert_eq!(entries[1], cpuid_f7_index0);
205-
}
206-
let cpuid_f7_index_non0 = kvm_cpuid_entry2 {
207-
function: 0x7,
208-
index: 2,
209-
flags: 0,
210-
eax: 0,
211-
ebx: 0,
212-
ecx: 0,
213-
edx: 0,
214-
padding: [0, 0, 0],
215-
};
216-
{
217-
let entries = kvm_cpuid.mut_entries_slice();
218-
assert_eq!(entries[2], cpuid_f7_index_non0);
219-
}
220-
let cpuid_f801 = kvm_cpuid_entry2 {
221-
function: 0x8000_0001,
222-
index: 0,
223-
flags: 0,
224-
eax: 0,
225-
ebx: 0,
226-
ecx: 0b11
227-
& !(1 << leaf_0x80000001::ecx::PREFETCH_SHIFT)
228-
& !(1 << leaf_0x80000001::ecx::LZCNT_SHIFT),
229-
edx: 0b111 & !(1 << leaf_0x80000001::edx::PDPE1GB_SHIFT),
230-
padding: [0, 0, 0],
231-
};
232-
{
233-
let entries = kvm_cpuid.mut_entries_slice();
234-
assert_eq!(entries[3], cpuid_f801);
235-
}
236-
let cpuid_nof = kvm_cpuid_entry2 {
237-
function: 0,
238-
index: 0,
239-
flags: 0,
240-
eax: 0,
241-
ebx: 0,
242-
ecx: 0,
243-
edx: 0,
244-
padding: [0, 0, 0],
245-
};
246-
{
247-
let entries = kvm_cpuid.mut_entries_slice();
248-
assert_eq!(entries[4], cpuid_nof);
249-
}
250-
}
251-
}

cpuid/src/template/t2.rs

Lines changed: 0 additions & 154 deletions
Original file line numberDiff line numberDiff line change
@@ -78,157 +78,3 @@ pub fn set_cpuid_entries(entries: &mut [kvm_cpuid_entry2]) {
7878
}
7979
}
8080
}
81-
82-
#[cfg(test)]
83-
mod tests {
84-
use super::*;
85-
use kvm_ioctls::CpuId;
86-
87-
#[cfg(any(target_arch = "x86", target_arch = "x86_64"))]
88-
#[test]
89-
#[allow(clippy::erasing_op)]
90-
fn test_t2_cpuid_template() {
91-
let mut kvm_cpuid = CpuId::new(5);
92-
{
93-
let entries = kvm_cpuid.mut_entries_slice();
94-
entries[0].function = 0x1;
95-
entries[0].ecx = 0b11;
96-
entries[0].edx = 0b111;
97-
}
98-
{
99-
let entries = kvm_cpuid.mut_entries_slice();
100-
entries[1].function = 0x7;
101-
entries[1].index = 0;
102-
entries[1].ebx = 0b11;
103-
entries[1].ecx = 0b111;
104-
}
105-
{
106-
let entries = kvm_cpuid.mut_entries_slice();
107-
entries[2].function = 0x7;
108-
// Something other than 0.
109-
entries[2].index = 2;
110-
}
111-
{
112-
let entries = kvm_cpuid.mut_entries_slice();
113-
entries[3].function = 0x8000_0001;
114-
entries[3].ecx = 0b11;
115-
entries[3].edx = 0b111;
116-
}
117-
{
118-
let entries = kvm_cpuid.mut_entries_slice();
119-
// Something other than 0x1, 0x7, 0x80000001.
120-
entries[4].function = 0x0;
121-
}
122-
123-
set_cpuid_entries(&mut kvm_cpuid.mut_entries_slice());
124-
125-
let cpuid_f1 = kvm_cpuid_entry2 {
126-
function: 1,
127-
index: 0,
128-
flags: 0,
129-
eax: 0
130-
& !(0b1111_1111 << leaf_0x1::eax::EXTENDED_FAMILY_ID_SHIFT)
131-
& !(0b1111 << leaf_0x1::eax::EXTENDED_PROCESSOR_MODEL_SHIFT)
132-
| 3 << leaf_0x1::eax::EXTENDED_PROCESSOR_MODEL_SHIFT
133-
& !(0b11 << leaf_0x1::eax::PROCESSOR_TYPE_SHIFT)
134-
& !(0b1111 << leaf_0x1::eax::PROCESSOR_FAMILY_SHIFT)
135-
| 6 << leaf_0x1::eax::PROCESSOR_FAMILY_SHIFT
136-
& !(0b1111 << leaf_0x1::eax::PROCESSOR_MODEL_SHIFT)
137-
| 15 << leaf_0x1::eax::PROCESSOR_MODEL_SHIFT & !(0b1111 as u32)
138-
| 2 as u32,
139-
ebx: 0,
140-
ecx: 0b11
141-
& !(1 << leaf_0x1::ecx::DTES64_SHIFT)
142-
& !(1 << leaf_0x1::ecx::MONITOR_SHIFT)
143-
& !(1 << leaf_0x1::ecx::DS_CPL_SHIFT)
144-
& !(1 << leaf_0x1::ecx::TM2_SHIFT)
145-
& !(1 << leaf_0x1::ecx::CNXT_ID)
146-
& !(1 << leaf_0x1::ecx::SDBG_SHIFT)
147-
& !(1 << leaf_0x1::ecx::XTPR_UPDATE_SHIFT)
148-
& !(1 << leaf_0x1::ecx::PDCM_SHIFT)
149-
& !(1 << leaf_0x1::ecx::OSXSAVE_SHIFT),
150-
edx: 0b111
151-
& !(1 << leaf_0x1::edx::PSN_SHIFT)
152-
& !(1 << leaf_0x1::edx::DS_SHIFT)
153-
& !(1 << leaf_0x1::edx::ACPI_SHIFT)
154-
& !(1 << leaf_0x1::edx::SS_SHIFT)
155-
& !(1 << leaf_0x1::edx::TM_SHIFT)
156-
& !(1 << leaf_0x1::edx::PBE_SHIFT),
157-
padding: [0, 0, 0],
158-
};
159-
{
160-
let entries = kvm_cpuid.mut_entries_slice();
161-
assert_eq!(entries[0], cpuid_f1);
162-
}
163-
let cpuid_f7_index0 = kvm_cpuid_entry2 {
164-
function: 0x7,
165-
index: 0,
166-
flags: 0,
167-
eax: 0,
168-
ebx: 0b11
169-
& !(1 << leaf_0x7::index0::ebx::SGX_SHIFT)
170-
& !(1 << leaf_0x7::index0::ebx::HLE_SHIFT)
171-
& !(1 << leaf_0x7::index0::ebx::FPDP_SHIFT)
172-
& !(1 << leaf_0x7::index0::ebx::RTM_SHIFT)
173-
& !(1 << leaf_0x7::index0::ebx::RDT_M_SHIFT)
174-
& !(1 << leaf_0x7::index0::ebx::RDT_A_SHIFT)
175-
& !(1 << leaf_0x7::index0::ebx::AVX512F_SHIFT)
176-
& !(1 << leaf_0x7::index0::ebx::RDSEED_SHIFT)
177-
& !(1 << leaf_0x7::index0::ebx::ADX_SHIFT)
178-
& !(1 << leaf_0x7::index0::ebx::PT_SHIFT)
179-
& !(1 << leaf_0x7::index0::ebx::AVX512CD_SHIFT)
180-
& !(1 << leaf_0x7::index0::ebx::SHA_SHIFT),
181-
ecx: 0b111
182-
& !(1 << leaf_0x7::index0::ecx::RDPID_SHIFT)
183-
& !(1 << leaf_0x7::index0::ecx::SGX_LC_SHIFT),
184-
edx: 0,
185-
padding: [0, 0, 0],
186-
};
187-
{
188-
let entries = kvm_cpuid.mut_entries_slice();
189-
assert_eq!(entries[1], cpuid_f7_index0);
190-
}
191-
let cpuid_f7_index_non0 = kvm_cpuid_entry2 {
192-
function: 0x7,
193-
index: 2,
194-
flags: 0,
195-
eax: 0,
196-
ebx: 0,
197-
ecx: 0,
198-
edx: 0,
199-
padding: [0, 0, 0],
200-
};
201-
{
202-
let entries = kvm_cpuid.mut_entries_slice();
203-
assert_eq!(entries[2], cpuid_f7_index_non0);
204-
}
205-
let cpuid_f801 = kvm_cpuid_entry2 {
206-
function: 0x8000_0001,
207-
index: 0,
208-
flags: 0,
209-
eax: 0,
210-
ebx: 0,
211-
ecx: 0b11 & !(1 << leaf_0x80000001::ecx::PREFETCH_SHIFT),
212-
edx: 0b111 & !(1 << leaf_0x80000001::edx::PDPE1GB_SHIFT),
213-
padding: [0, 0, 0],
214-
};
215-
{
216-
let entries = kvm_cpuid.mut_entries_slice();
217-
assert_eq!(entries[3], cpuid_f801);
218-
}
219-
let cpuid_nof = kvm_cpuid_entry2 {
220-
function: 0,
221-
index: 0,
222-
flags: 0,
223-
eax: 0,
224-
ebx: 0,
225-
ecx: 0,
226-
edx: 0,
227-
padding: [0, 0, 0],
228-
};
229-
{
230-
let entries = kvm_cpuid.mut_entries_slice();
231-
assert_eq!(entries[4], cpuid_nof);
232-
}
233-
}
234-
}

0 commit comments

Comments
 (0)