blob: 1fcb3709d64ec299198c337213581684f5d8596b [file] [log] [blame]
#!/usr/bin/env python
"""
Simple example of a test generator which just produces data on some
mathematical functions, keyed off of the current time.
"""
from lnt.testing import Machine, Run, TestSamples, Report
import math
import random
import sys
import time
def main():
from optparse import OptionParser
parser = OptionParser("usage: %prog [options] [output]")
opts, args = parser.parse_args()
if len(args) == 0:
output = '-'
elif len(args) == 1:
output = args[0]
else:
parser.error("invalid number of arguments")
if output == '-':
output = sys.stdout
else:
output = open(output, 'w')
offset = math.pi/5
delay = 120.
machine = Machine('Mr. Sin Wave', info={'delay': delay})
start = time.time()
run = Run(start, start, info={'t': start,
'tag': 'simple',
'run_order': 1})
tests = [TestSamples('simple.%s' % name,
[fn(start*2*math.pi / delay + j * offset)],
info={'offset': j})
for j in range(5)
for name, fn in (('sin', math.sin),
('cos', math.cos),
('random', lambda x: random.random()))]
report = Report(machine, run, tests)
print(report.render(), file=output)
if output is not sys.stderr:
output.close()
if __name__ == '__main__':
main()