xref: /aosp_15_r20/external/autotest/client/bin/harness_simple.py (revision 9c5db1993ded3edbeafc8092d69fe5de2ee02df7)
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