diff options
author | Daniel Friesel <derf@finalrewind.org> | 2019-03-04 15:15:54 +0100 |
---|---|---|
committer | Daniel Friesel <derf@finalrewind.org> | 2019-03-04 15:16:10 +0100 |
commit | 4e37798145fa03bd90880f4ac315529190472eaf (patch) | |
tree | d6051e435941d9a4a9ea21f81624d87be1d818b9 /lib/harness.py | |
parent | 9abd39d11da2db4d5804d4e8199578bfa3aa9164 (diff) |
generate PTA from YAML model, support several types of test harness
Diffstat (limited to 'lib/harness.py')
-rw-r--r-- | lib/harness.py | 70 |
1 files changed, 70 insertions, 0 deletions
diff --git a/lib/harness.py b/lib/harness.py new file mode 100644 index 0000000..c03406c --- /dev/null +++ b/lib/harness.py @@ -0,0 +1,70 @@ +""" +Harnesses for various types of benchmark logs. + +tbd +""" + +class OnboardTimerHarness: + def __init__(self, gpio_pin = None): + self.gpio_pin = gpio_pin + pass + + def global_code(self): + ret = '#include "driver/counter.h"\n' + ret += '#define PTALOG_TIMING\n' + if self.gpio_pin != None: + ret += '#define PTALOG_GPIO {}\n'.format(self.gpio_pin) + ret += '#include "object/ptalog.h"\n' + return ret + + def start_benchmark(self): + return 'ptalog.startBenchmark(0);\n' + + def start_run(self): + return 'ptalog.reset();\n' + + def pass_transition(self, transition_id, transition_code): + ret = 'ptalog.passTransition({:d});\n'.format(transition_id) + ret += 'ptalog.startTransition();\n' + ret += 'counter.start();\n' + ret += '{}\n'.format(transition_code) + ret += 'counter.stop();\n' + ret += 'ptalog.stopTransition(counter);\n' + return ret + + def stop_run(self): + return 'ptalog.dump();\n' + + def stop_benchmark(self): + return '' + +class TransitionHarness: + def __init__(self, gpio_pin = None): + self.gpio_pin = gpio_pin + pass + + def global_code(self): + ret = '' + if self.gpio_pin != None: + ret += '#define PTALOG_GPIO {}\n'.format(self.gpio_pin) + ret += '#include "object/ptalog.h"\n' + return ret + + def start_benchmark(self): + return 'ptalog.startBenchmark(0);\n' + + def start_run(self): + return 'ptalog.reset();\n' + + def pass_transition(self, transition_id, transition_code): + ret = 'ptalog.passTransition({:d});\n'.format(transition_id) + ret += 'ptalog.startTransition();\n' + ret += '{}\n'.format(transition_code) + ret += 'ptalog.stopTransition();\n' + return ret + + def stop_run(self): + return 'ptalog.dump();\n' + + def stop_benchmark(self): + return '' |