-
Notifications
You must be signed in to change notification settings - Fork 29
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
instruction-check:Add another way to use instruction-check
1. Added dynamic generation of Avocado test classes from feature_list.py into cpuid_test.py. 2. Fixed some errors in README. Signed-off-by: Haoliang Zhu<[email protected]>
- Loading branch information
1 parent
500758f
commit e17a64a
Showing
3 changed files
with
102 additions
and
51 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,36 @@ | ||
#!/usr/bin/python | ||
import os | ||
from feature_list import cpuid_info | ||
|
||
# Template string, used to generate code for each test class | ||
class_template = """ | ||
class {class_name}(Test): | ||
def test(self): | ||
cmd = os.path.join(source_dir, file_name + ' ' + ' '.join({args})) | ||
cmd_result = process.run(cmd, ignore_status=True) | ||
self.assertEqual(cmd_result.exit_status, expected_result) | ||
""" | ||
|
||
def generate_cpuid_tests(): | ||
with open('cpuid_test.py', 'w') as f: | ||
script_dir = os.path.dirname(__file__) | ||
parent_dir = os.path.dirname(script_dir) | ||
grandparent_dir = os.path.dirname(parent_dir) | ||
source_dir = f"{grandparent_dir}/tools/cpuid_check" | ||
# Write the necessary imports and variable definitions | ||
f.write(f'''#!/usr/bin/python | ||
import os | ||
from avocado import Test | ||
from avocado.utils import process | ||
source_dir = "{source_dir}" | ||
file_name = "cpuid_check" | ||
expected_result = 0 | ||
''') | ||
# For each feature in feature_list.py generates a test class | ||
for feature, args in cpuid_info.items(): | ||
class_code = class_template.format(class_name=feature, args=args) | ||
f.write(class_code) | ||
|
||
generate_cpuid_tests() |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -1,49 +1,49 @@ | ||
cpuid_info = { | ||
"AESNI": ['1', '0', '0', '0', 'c', '25'], | ||
"XSAVE": ['1', '0', '0', '0', 'c', '26'], | ||
"FSGSBASE": ['7', '0', '0', '0', 'b', '0'], | ||
"SMEP": ['7', '0', '0', '0', 'b', '7'], | ||
"RDT_A": ['7', '0', '0', '0', 'b', '15'], | ||
"AVX512_IFMA": ['7', '0', '0', '0', 'b', '21'], | ||
"SHA_NI": ['7', '0', '0', '0', 'b', '29'], | ||
"AVX512_VBMI": ['7', '0', '0', '0', 'c', '1'], | ||
"UMIP": ['7', '0', '0', '0', 'c', '2'], | ||
"WAITPKG": ['7', '0', '0', '0', 'c', '5'], | ||
"AVX512_VBMI2": ['7', '0', '0', '0', 'c', '6'], | ||
"CET_SS": ['7', '0', '0', '0', 'c', '7'], | ||
"GFNI": ['7', '0', '0', '0', 'c', '8'], | ||
"VAES": ['7', '0', '0', '0', 'c', '9'], | ||
"AVX512_VNNI": ['7', '0', '0', '0', 'c', '11'], | ||
"AVX512_BITALG": ['7', '0', '0', '0', 'c', '12'], | ||
"RDPID": ['7', '0', '0', '0', 'c', '22'], | ||
"KL": ['7', '0', '0', '0', 'c', '23'], | ||
"CLDEMOTE": ['7', '0', '0', '0', 'c', '25'], | ||
"MOVDIRI": ['7', '0', '0', '0', 'c', '27'], | ||
"MOVDIR64B": ['7', '0', '0', '0', 'c', '28'], | ||
"PKS": ['7', '0', '0', '0', 'c', '31'], | ||
"UINTR": ['7', '0', '0', '0', 'd', '5'], | ||
"AVX512_VP2INTERSECT": ['7', '0', '0', '0', 'd', '8'], | ||
"SERIALIZE": ['7', '0', '0', '0', 'd', '14'], | ||
"TSXLDTRK": ['7', '0', '0', '0', 'd', '16'], | ||
"CET_IBT": ['7', '0', '0', '0', 'd', '20'], | ||
"AMX_BF16": ['7', '0', '0', '0', 'd', '22'], | ||
"AVX512_FP16": ['7', '0', '0', '0', 'd', '23'], | ||
"AMX_TILE": ['7', '0', '0', '0', 'd', '24'], | ||
"AMX_INT8": ['7', '0', '0', '0', 'd', '25'], | ||
"AVX_VNNI": ['7', '0', '1', '0', 'a', '4'], | ||
"FRED": ['7', '0', '1', '0', 'a', '17'], | ||
"WRMSRNS": ['7', '0', '1', '0', 'a', '19'], | ||
"AMX_FP16": ['7', '0', '1', '0', 'a', '21'], | ||
"AVX_IFMA": ['7', '0', '1', '0', 'a', '23'], | ||
"AVX_VNNI_INT8": ['7', '0', '1', '0', 'd', '4'], | ||
"AVX_NE_CONVERT": ['7', '0', '1', '0', 'd', '5'], | ||
"XFD": ['d', '0', '1', '0', 'a', '4'], | ||
"KL_BITMAP0": ['19', '0', '0', '0', 'a', '0'], | ||
"KL_BITMAP1": ['19', '0', '0', '0', 'a', '1'], | ||
"KL_BITMAP2": ['19', '0', '0', '0', 'a', '2'], | ||
"AESKLE": ['19', '0', '0', '0', 'b', '0'], | ||
"AES_WIDE": ['19', '0', '0', '0', 'b', '2'], | ||
"KL_IWKEYBACKUP": ['19', '0', '0', '0', 'b', '4'], | ||
"KL_RANDOM_IWKEY": ['19', '0', '0', '0', 'c', '1'] | ||
# Add more cpuid_info here | ||
"AESNI": ['1', '0', '0', '0', 'c', '25'], | ||
"XSAVE": ['1', '0', '0', '0', 'c', '26'], | ||
"FSGSBASE": ['7', '0', '0', '0', 'b', '0'], | ||
"SMEP": ['7', '0', '0', '0', 'b', '7'], | ||
"RDT_A": ['7', '0', '0', '0', 'b', '15'], | ||
"AVX512_IFMA": ['7', '0', '0', '0', 'b', '21'], | ||
"SHA_NI": ['7', '0', '0', '0', 'b', '29'], | ||
"AVX512_VBMI": ['7', '0', '0', '0', 'c', '1'], | ||
"UMIP": ['7', '0', '0', '0', 'c', '2'], | ||
"WAITPKG": ['7', '0', '0', '0', 'c', '5'], | ||
"AVX512_VBMI2": ['7', '0', '0', '0', 'c', '6'], | ||
"CET_SS": ['7', '0', '0', '0', 'c', '7'], | ||
"GFNI": ['7', '0', '0', '0', 'c', '8'], | ||
"VAES": ['7', '0', '0', '0', 'c', '9'], | ||
"AVX512_VNNI": ['7', '0', '0', '0', 'c', '11'], | ||
"AVX512_BITALG": ['7', '0', '0', '0', 'c', '12'], | ||
"RDPID": ['7', '0', '0', '0', 'c', '22'], | ||
"KL": ['7', '0', '0', '0', 'c', '23'], | ||
"CLDEMOTE": ['7', '0', '0', '0', 'c', '25'], | ||
"MOVDIRI": ['7', '0', '0', '0', 'c', '27'], | ||
"MOVDIR64B": ['7', '0', '0', '0', 'c', '28'], | ||
"PKS": ['7', '0', '0', '0', 'c', '31'], | ||
"UINTR": ['7', '0', '0', '0', 'd', '5'], | ||
"AVX512_VP2INTERSECT": ['7', '0', '0', '0', 'd', '8'], | ||
"SERIALIZE": ['7', '0', '0', '0', 'd', '14'], | ||
"TSXLDTRK": ['7', '0', '0', '0', 'd', '16'], | ||
"CET_IBT": ['7', '0', '0', '0', 'd', '20'], | ||
"AMX_BF16": ['7', '0', '0', '0', 'd', '22'], | ||
"AVX512_FP16": ['7', '0', '0', '0', 'd', '23'], | ||
"AMX_TILE": ['7', '0', '0', '0', 'd', '24'], | ||
"AMX_INT8": ['7', '0', '0', '0', 'd', '25'], | ||
"AVX_VNNI": ['7', '0', '1', '0', 'a', '4'], | ||
"FRED": ['7', '0', '1', '0', 'a', '17'], | ||
"WRMSRNS": ['7', '0', '1', '0', 'a', '19'], | ||
"AMX_FP16": ['7', '0', '1', '0', 'a', '21'], | ||
"AVX_IFMA": ['7', '0', '1', '0', 'a', '23'], | ||
"AVX_VNNI_INT8": ['7', '0', '1', '0', 'd', '4'], | ||
"AVX_NE_CONVERT": ['7', '0', '1', '0', 'd', '5'], | ||
"XFD": ['d', '0', '1', '0', 'a', '4'], | ||
"KL_BITMAP0": ['19', '0', '0', '0', 'a', '0'], | ||
"KL_BITMAP1": ['19', '0', '0', '0', 'a', '1'], | ||
"KL_BITMAP2": ['19', '0', '0', '0', 'a', '2'], | ||
"AESKLE": ['19', '0', '0', '0', 'b', '0'], | ||
"AES_WIDE": ['19', '0', '0', '0', 'b', '2'], | ||
"KL_IWKEYBACKUP": ['19', '0', '0', '0', 'b', '4'], | ||
"KL_RANDOM_IWKEY": ['19', '0', '0', '0', 'c', '1'] | ||
# Add more cpuid_info here | ||
} |