summaryrefslogtreecommitdiff
path: root/lib/harness.py
diff options
context:
space:
mode:
authorDaniel Friesel <derf@finalrewind.org>2019-03-04 15:15:54 +0100
committerDaniel Friesel <derf@finalrewind.org>2019-03-04 15:16:10 +0100
commit4e37798145fa03bd90880f4ac315529190472eaf (patch)
treed6051e435941d9a4a9ea21f81624d87be1d818b9 /lib/harness.py
parent9abd39d11da2db4d5804d4e8199578bfa3aa9164 (diff)
generate PTA from YAML model, support several types of test harness
Diffstat (limited to 'lib/harness.py')
-rw-r--r--lib/harness.py70
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 ''