| # this doctest contains tests for miscellaneous features of the RPC interface |
| # that would clutter the main rpc_test |
| |
| # setup |
| >>> from autotest_lib.frontend.afe import rpc_interface |
| |
| >>> rpc_interface.add_profiler(name='oprofile') |
| 1 |
| >>> rpc_interface.add_profiler(name='iostat') |
| 2 |
| |
| # profiler support in control file generation |
| >>> cf_info = rpc_interface.generate_control_file( |
| ... client_control_file='print "Hi"\n', |
| ... profilers=['oprofile', 'iostat']) |
| >>> print cf_info['control_file'] |
| def step_init(): |
| job.next_step('step0') |
| job.next_step('step1') |
| job.next_step('step2') |
| job.next_step('step3') |
| job.next_step('step4') |
| <BLANKLINE> |
| def step0(): |
| job.profilers.add('oprofile') |
| <BLANKLINE> |
| def step1(): |
| job.profilers.add('iostat') |
| <BLANKLINE> |
| def step2(): |
| print "Hi" |
| <BLANKLINE> |
| return locals() |
| <BLANKLINE> |
| def step3(): |
| job.profilers.delete('oprofile') |
| <BLANKLINE> |
| def step4(): |
| job.profilers.delete('iostat') |
| |
| # profile_only=False support in control file generation |
| >>> cf_info = rpc_interface.generate_control_file( |
| ... client_control_file='print "Hi"\n', |
| ... profilers=['oprofile'], |
| ... profile_only=False) |
| >>> print cf_info['control_file'] |
| def step_init(): |
| job.next_step('step0') |
| job.next_step('step1') |
| job.next_step('step2') |
| job.next_step('step3') |
| <BLANKLINE> |
| def step0(): |
| job.default_profile_only = False |
| <BLANKLINE> |
| def step1(): |
| job.profilers.add('oprofile') |
| <BLANKLINE> |
| def step2(): |
| print "Hi" |
| <BLANKLINE> |
| return locals() |
| <BLANKLINE> |
| def step3(): |
| job.profilers.delete('oprofile') |
| |
| # profile_only=True support in control file generation |
| >>> cf_info = rpc_interface.generate_control_file( |
| ... client_control_file='print "Hi"\n', |
| ... profilers=['iostat'], |
| ... profile_only=True) |
| >>> print cf_info['control_file'] |
| def step_init(): |
| job.next_step('step0') |
| job.next_step('step1') |
| job.next_step('step2') |
| job.next_step('step3') |
| <BLANKLINE> |
| def step0(): |
| job.default_profile_only = True |
| <BLANKLINE> |
| def step1(): |
| job.profilers.add('iostat') |
| <BLANKLINE> |
| def step2(): |
| print "Hi" |
| <BLANKLINE> |
| return locals() |
| <BLANKLINE> |
| def step3(): |
| job.profilers.delete('iostat') |
| |
| # test that multiline quoted strings are not indented |
| >>> import common |
| >>> from autotest_lib.frontend.afe import test, control_file |
| >>> import os |
| >>> control_path = os.path.join(os.path.dirname(test.__file__), |
| ... 'doctests', 'test.control.3') |
| >>> control_path = os.path.abspath(control_path) |
| >>> class FakeTest(object): |
| ... path = control_path |
| ... |
| >>> print control_file.generate_control([FakeTest()], is_server=True) #doctest: +NORMALIZE_WHITESPACE |
| def step_init(): |
| step0() |
| def step0(): |
| client_code = """ |
| some content\"""quoted content\""" |
| '''other quoted content\"""''' |
| \\""" |
| client_code2 = ''' |
| some content\'''quoted content\''' |
| """other quoted content\'''""" |
| \\''' |
| job.run_test('testname') |
| step_init() |