Skip to content

Commit 58e975e

Browse files
committed
Refactor Python scripts to adhere to the new formatting rules
1 parent 307a525 commit 58e975e

File tree

8 files changed

+363
-222
lines changed

8 files changed

+363
-222
lines changed

tests/arch-test-target/constants.py

Lines changed: 10 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -1,19 +1,19 @@
11
import os
22

3-
dutname = 'rv32emu'
4-
refname = 'sail_cSim'
3+
dutname = "rv32emu"
4+
refname = "sail_cSim"
55

66
root = os.path.abspath(os.path.dirname(__file__))
77
cwd = os.getcwd()
88

9-
misa_A = (1 << 0)
10-
misa_C = (1 << 2)
11-
misa_E = (1 << 4)
12-
misa_F = (1 << 5)
13-
misa_I = (1 << 8)
14-
misa_M = (1 << 12)
9+
misa_A = 1 << 0
10+
misa_C = 1 << 2
11+
misa_E = 1 << 4
12+
misa_F = 1 << 5
13+
misa_I = 1 << 8
14+
misa_M = 1 << 12
1515

16-
config_temp = '''[RISCOF]
16+
config_temp = """[RISCOF]
1717
ReferencePlugin={0}
1818
ReferencePluginPath={1}
1919
DUTPlugin={2}
@@ -29,4 +29,4 @@
2929
[{0}]
3030
pluginpath={1}
3131
path={1}
32-
'''
32+
"""

tests/arch-test-target/rv32emu/riscof_rv32emu.py

Lines changed: 59 additions & 31 deletions
Original file line numberDiff line numberDiff line change
@@ -15,14 +15,15 @@
1515

1616
logger = logging.getLogger()
1717

18+
1819
class rv32emu(pluginTemplate):
1920
__model__ = "rv32emu"
2021
__version__ = "dev"
2122

2223
def __init__(self, *args, **kwargs):
2324
sclass = super().__init__(*args, **kwargs)
2425

25-
config = kwargs.get('config')
26+
config = kwargs.get("config")
2627

2728
# If the config node for this DUT is missing or empty. Raise an error. At minimum we need
2829
# the paths to the ispec and pspec files
@@ -34,25 +35,27 @@ def __init__(self, *args, **kwargs):
3435
# test-bench produced by a simulator (like verilator, vcs, incisive, etc). In case of an iss or
3536
# emulator, this variable could point to where the iss binary is located. If 'PATH variable
3637
# is missing in the config.ini we can hardcode the alternate here.
37-
self.dut_exe = os.path.join(config['PATH'] if 'PATH' in config else "","rv32emu")
38+
self.dut_exe = os.path.join(
39+
config["PATH"] if "PATH" in config else "", "rv32emu"
40+
)
3841

3942
# Number of parallel jobs that can be spawned off by RISCOF
4043
# for various actions performed in later functions, specifically to run the tests in
4144
# parallel on the DUT executable. Can also be used in the build function if required.
42-
self.num_jobs = str(config['jobs'] if 'jobs' in config else 1)
45+
self.num_jobs = str(config["jobs"] if "jobs" in config else 1)
4346

4447
# Path to the directory where this python file is located. Collect it from the config.ini
45-
self.pluginpath=os.path.abspath(config['pluginpath'])
48+
self.pluginpath = os.path.abspath(config["pluginpath"])
4649

4750
# Collect the paths to the riscv-config absed ISA and platform yaml files. One can choose
4851
# to hardcode these here itself instead of picking it from the config.ini file.
49-
self.isa_spec = os.path.abspath(config['ispec'])
50-
self.platform_spec = os.path.abspath(config['pspec'])
52+
self.isa_spec = os.path.abspath(config["ispec"])
53+
self.platform_spec = os.path.abspath(config["pspec"])
5154

5255
# We capture if the user would like the run the tests on the target or
5356
# not. If you are interested in just compiling the tests and not running
5457
# them on the target, then following variable should be set to False
55-
if 'target_run' in config and config['target_run']=='0':
58+
if "target_run" in config and config["target_run"] == "0":
5659
self.target_run = False
5760
else:
5861
self.target_run = True
@@ -72,36 +75,57 @@ def initialise(self, suite, work_dir, archtest_env):
7275
# Note the march is not hardwired here, because it will change for each
7376
# test. Similarly the output elf name and compile macros will be assigned later in the
7477
# runTests function
75-
self.compile_cmd = os.getenv("CROSS_COMPILE") + 'gcc -march={0}\
78+
self.compile_cmd = (
79+
os.getenv("CROSS_COMPILE")
80+
+ "gcc -march={0}\
7681
-static -mcmodel=medany -fvisibility=hidden -nostdlib -nostartfiles -g\
77-
-T '+self.pluginpath+'/env/link.ld\
78-
-I '+self.pluginpath+'/env/\
79-
-I ' + archtest_env + ' {2} -o {3} {4}'
82+
-T "
83+
+ self.pluginpath
84+
+ "/env/link.ld\
85+
-I "
86+
+ self.pluginpath
87+
+ "/env/\
88+
-I "
89+
+ archtest_env
90+
+ " {2} -o {3} {4}"
91+
)
8092

8193
def build(self, isa_yaml, platform_yaml):
8294
# load the isa yaml as a dictionary in python.
83-
ispec = utils.load_yaml(isa_yaml)['hart0']
95+
ispec = utils.load_yaml(isa_yaml)["hart0"]
8496

8597
# capture the XLEN value by picking the max value in 'supported_xlen' field of isa yaml. This
8698
# will be useful in setting integer value in the compiler string (if not already hardcoded);
87-
self.xlen = ('64' if 64 in ispec['supported_xlen'] else '32')
88-
89-
if 'E' not in ispec['ISA']:
90-
self.compile_cmd = self.compile_cmd+' -mabi='+('lp64 ' if 64 in ispec['supported_xlen'] else 'ilp32 ')
99+
self.xlen = "64" if 64 in ispec["supported_xlen"] else "32"
100+
101+
if "E" not in ispec["ISA"]:
102+
self.compile_cmd = (
103+
self.compile_cmd
104+
+ " -mabi="
105+
+ ("lp64 " if 64 in ispec["supported_xlen"] else "ilp32 ")
106+
)
91107
else:
92-
self.compile_cmd = self.compile_cmd+' -mabi='+('lp64e ' if 64 in ispec['supported_xlen'] else 'ilp32e ')
93-
self.compile_cmd += '-D RV32E '
108+
self.compile_cmd = (
109+
self.compile_cmd
110+
+ " -mabi="
111+
+ ("lp64e " if 64 in ispec["supported_xlen"] else "ilp32e ")
112+
)
113+
self.compile_cmd += "-D RV32E "
94114

95115
def runTests(self, testList):
96116
# Delete Makefile if it already exists.
97-
if os.path.exists(self.work_dir+ "/Makefile." + self.name[:-1]):
98-
os.remove(self.work_dir+ "/Makefile." + self.name[:-1])
117+
if os.path.exists(self.work_dir + "/Makefile." + self.name[:-1]):
118+
os.remove(self.work_dir + "/Makefile." + self.name[:-1])
99119
# create an instance the makeUtil class that we will use to create targets.
100-
make = utils.makeUtil(makefilePath=os.path.join(self.work_dir, "Makefile." + self.name[:-1]))
120+
make = utils.makeUtil(
121+
makefilePath=os.path.join(
122+
self.work_dir, "Makefile." + self.name[:-1]
123+
)
124+
)
101125

102126
# set the make command that will be used. The num_jobs parameter was set in the __init__
103127
# function earlier
104-
make.makeCommand = 'make -j' + self.num_jobs
128+
make.makeCommand = "make -j" + self.num_jobs
105129

106130
# we will iterate over each entry in the testList. Each entry node will be refered to by the
107131
# variable testname.
@@ -110,14 +134,14 @@ def runTests(self, testList):
110134
testentry = testList[testname]
111135

112136
# we capture the path to the assembly file of this test
113-
test = testentry['test_path']
137+
test = testentry["test_path"]
114138

115139
# capture the directory where the artifacts of this test will be dumped/created. RISCOF is
116140
# going to look into this directory for the signature files
117-
test_dir = testentry['work_dir']
141+
test_dir = testentry["work_dir"]
118142

119143
# name of the elf file after compilation of the test
120-
elf = 'my.elf'
144+
elf = "my.elf"
121145

122146
# name of the signature file as per requirement of RISCOF. RISCOF expects the signature to
123147
# be named as DUT-<dut-name>.signature. The below variable creates an absolute path of
@@ -127,22 +151,26 @@ def runTests(self, testList):
127151
# for each test there are specific compile macros that need to be enabled. The macros in
128152
# the testList node only contain the macros/values. For the gcc toolchain we need to
129153
# prefix with "-D". The following does precisely that.
130-
compile_macros = ' -D' + " -D".join(testentry['macros'])
154+
compile_macros = " -D" + " -D".join(testentry["macros"])
131155

132156
# substitute all variables in the compile command that we created in the initialize function
133-
cmd = self.compile_cmd.format(testentry['isa'].lower(), self.xlen, test, elf, compile_macros)
157+
cmd = self.compile_cmd.format(
158+
testentry["isa"].lower(), self.xlen, test, elf, compile_macros
159+
)
134160

135-
# if the user wants to disable running the tests and only compile the tests, then
161+
# if the user wants to disable running the tests and only compile the tests, then
136162
# the "else" clause is executed below assigning the sim command to simple no action
137163
# echo statement.
138164
if self.target_run:
139-
# set up the simulation command. Template is for spike. Please change.
140-
simcmd = self.dut_exe + ' -a {0} {1}'.format(sig_file, elf)
165+
# set up the simulation command. Template is for spike. Please change.
166+
simcmd = self.dut_exe + " -a {0} {1}".format(sig_file, elf)
141167
else:
142168
simcmd = 'echo "NO RUN"'
143169

144170
# concatenate all commands that need to be executed within a make-target.
145-
execute = '@cd {0}; {1}; {2};'.format(testentry['work_dir'], cmd, simcmd)
171+
execute = "@cd {0}; {1}; {2};".format(
172+
testentry["work_dir"], cmd, simcmd
173+
)
146174

147175
# create a target. The makeutil will create a target with the name "TARGET<num>" where num
148176
# starts from 0 and increments automatically for each new target that is added

0 commit comments

Comments
 (0)