12
12
13
13
run_tests_module = __import__ ("run-tests" )
14
14
15
- sys .path .append ("../tools" )
16
- import pyboard
17
-
18
15
prepare_script_for_target = run_tests_module .prepare_script_for_target
19
16
20
17
# Paths for host executables
@@ -47,12 +44,12 @@ def run_script_on_target(target, script):
47
44
output = b""
48
45
err = None
49
46
50
- if isinstance (target , pyboard . Pyboard ):
47
+ if hasattr (target , "enter_raw_repl" ):
51
48
# Run via pyboard interface
52
49
try :
53
50
target .enter_raw_repl ()
54
51
output = target .exec_ (script )
55
- except pyboard .PyboardError as er :
52
+ except run_tests_module . pyboard .PyboardError as er :
56
53
err = er
57
54
else :
58
55
# Run local executable
@@ -125,7 +122,7 @@ def run_benchmarks(args, target, param_n, param_m, n_average, test_list):
125
122
f .write (test_script )
126
123
127
124
# Process script through mpy-cross if needed
128
- if isinstance (target , pyboard . Pyboard ) or args .via_mpy :
125
+ if hasattr (target , "enter_raw_repl" ) or args .via_mpy :
129
126
crash , test_script_target = prepare_script_for_target (args , script_text = test_script )
130
127
if crash :
131
128
test_results .append ((test_file , "fail" , "preparation" ))
@@ -253,17 +250,17 @@ def compute_diff(file1, file2, diff_score):
253
250
def main ():
254
251
cmd_parser = argparse .ArgumentParser (description = "Run benchmarks for MicroPython" )
255
252
cmd_parser .add_argument (
256
- "-t " , "--diff-time" , action = "store_true" , help = "diff time outputs from a previous run"
253
+ "-m " , "--diff-time" , action = "store_true" , help = "diff time outputs from a previous run"
257
254
)
258
255
cmd_parser .add_argument (
259
256
"-s" , "--diff-score" , action = "store_true" , help = "diff score outputs from a previous run"
260
257
)
261
258
cmd_parser .add_argument (
262
- "-p" , "--pyboard" , action = "store_true" , help = "run tests via pyboard.py"
263
- )
264
- cmd_parser .add_argument (
265
- "-d" , "--device" , default = "/dev/ttyACM0" , help = "the device for pyboard.py"
259
+ "-t" , "--test-instance" , default = "unix" , help = "the MicroPython instance to test"
266
260
)
261
+ cmd_parser .add_argument ("--baudrate" , default = 115200 , help = "baud rate of the serial device" )
262
+ cmd_parser .add_argument ("--user" , default = "micro" , help = "telnet login username" )
263
+ cmd_parser .add_argument ("--password" , default = "python" , help = "telnet login password" )
267
264
cmd_parser .add_argument ("-a" , "--average" , default = "8" , help = "averaging number" )
268
265
cmd_parser .add_argument (
269
266
"--emit" , default = "bytecode" , help = "MicroPython emitter to use (bytecode or native)"
@@ -295,15 +292,17 @@ def main():
295
292
M = int (args .M [0 ])
296
293
n_average = int (args .average )
297
294
298
- if args .pyboard :
299
- if not args .mpy_cross_flags :
300
- args .mpy_cross_flags = "-march=armv7m"
301
- target = pyboard .Pyboard (args .device )
302
- target .enter_raw_repl ()
303
- else :
295
+ target = run_tests_module .get_test_instance (
296
+ args .test_instance , args .baudrate , args .user , args .password
297
+ )
298
+ if target is None :
299
+ # Use the unix port of MicroPython.
304
300
target = [MICROPYTHON , "-X" , "emit=" + args .emit ]
305
301
if args .heapsize is not None :
306
302
target .extend (["-X" , "heapsize=" + args .heapsize ])
303
+ else :
304
+ if not args .mpy_cross_flags :
305
+ args .mpy_cross_flags = "-march=armv7m"
307
306
308
307
if len (args .files ) == 0 :
309
308
tests_skip = ("benchrun.py" ,)
@@ -324,7 +323,7 @@ def main():
324
323
test_results = run_benchmarks (args , target , N , M , n_average , tests )
325
324
res = run_tests_module .create_test_report (args , test_results )
326
325
327
- if isinstance (target , pyboard . Pyboard ):
326
+ if hasattr (target , "exit_raw_repl" ):
328
327
target .exit_raw_repl ()
329
328
target .close ()
330
329
0 commit comments