1*9c5db199SXin Li""" 2*9c5db199SXin LiThe simple harness interface 3*9c5db199SXin Li""" 4*9c5db199SXin Li 5*9c5db199SXin Li__author__ = """Copyright Andy Whitcroft, Martin J. Bligh 2006""" 6*9c5db199SXin Li 7*9c5db199SXin Liimport os, harness, time 8*9c5db199SXin Li 9*9c5db199SXin Liclass harness_simple(harness.harness): 10*9c5db199SXin Li """ 11*9c5db199SXin Li The simple server harness 12*9c5db199SXin Li 13*9c5db199SXin Li Properties: 14*9c5db199SXin Li job 15*9c5db199SXin Li The job object for this job 16*9c5db199SXin Li """ 17*9c5db199SXin Li 18*9c5db199SXin Li def __init__(self, job, harness_args): 19*9c5db199SXin Li """ 20*9c5db199SXin Li job 21*9c5db199SXin Li The job object for this job 22*9c5db199SXin Li """ 23*9c5db199SXin Li self.setup(job) 24*9c5db199SXin Li 25*9c5db199SXin Li self.status = os.fdopen(3, 'w') 26*9c5db199SXin Li 27*9c5db199SXin Li 28*9c5db199SXin Li def test_status(self, status, tag): 29*9c5db199SXin Li """A test within this job is completing""" 30*9c5db199SXin Li if self.status: 31*9c5db199SXin Li for line in status.split('\n'): 32*9c5db199SXin Li # prepend status messages with 33*9c5db199SXin Li # AUTOTEST_STATUS:tag: so that we can tell 34*9c5db199SXin Li # which lines were sent by the autotest client 35*9c5db199SXin Li pre = 'AUTOTEST_STATUS:%s:' % (tag,) 36*9c5db199SXin Li self.status.write(pre + line + '\n') 37*9c5db199SXin Li self.status.flush() 38