Home | History | Annotate | Download | only in doctests
      1 # this doctest contains tests for miscellaneous features of the RPC interface
      2 # that would clutter the main rpc_test
      3 
      4 # setup
      5 >>> from autotest_lib.frontend.afe import rpc_interface
      6 
      7 >>> rpc_interface.add_profiler(name='oprofile')
      8 1
      9 >>> rpc_interface.add_profiler(name='iostat')
     10 2
     11 
     12 # profiler support in control file generation
     13 >>> cf_info = rpc_interface.generate_control_file(
     14 ...     client_control_file='print "Hi"\n',
     15 ...     profilers=['oprofile', 'iostat'])
     16 >>> print cf_info['control_file']
     17 def step_init():
     18     job.next_step('step0')
     19     job.next_step('step1')
     20     job.next_step('step2')
     21     job.next_step('step3')
     22     job.next_step('step4')
     23 <BLANKLINE>
     24 def step0():
     25     job.profilers.add('oprofile')
     26 <BLANKLINE>
     27 def step1():
     28     job.profilers.add('iostat')
     29 <BLANKLINE>
     30 def step2():
     31     print "Hi"
     32 <BLANKLINE>
     33     return locals()
     34 <BLANKLINE>
     35 def step3():
     36     job.profilers.delete('oprofile')
     37 <BLANKLINE>
     38 def step4():
     39     job.profilers.delete('iostat')
     40 
     41 # profile_only=False support in control file generation
     42 >>> cf_info = rpc_interface.generate_control_file(
     43 ...     client_control_file='print "Hi"\n',
     44 ...     profilers=['oprofile'],
     45 ...     profile_only=False)
     46 >>> print cf_info['control_file']
     47 def step_init():
     48     job.next_step('step0')
     49     job.next_step('step1')
     50     job.next_step('step2')
     51     job.next_step('step3')
     52 <BLANKLINE>
     53 def step0():
     54     job.default_profile_only = False
     55 <BLANKLINE>
     56 def step1():
     57     job.profilers.add('oprofile')
     58 <BLANKLINE>
     59 def step2():
     60     print "Hi"
     61 <BLANKLINE>
     62     return locals()
     63 <BLANKLINE>
     64 def step3():
     65     job.profilers.delete('oprofile')
     66 
     67 # profile_only=True support in control file generation
     68 >>> cf_info = rpc_interface.generate_control_file(
     69 ...     client_control_file='print "Hi"\n',
     70 ...     profilers=['iostat'],
     71 ...     profile_only=True)
     72 >>> print cf_info['control_file']
     73 def step_init():
     74     job.next_step('step0')
     75     job.next_step('step1')
     76     job.next_step('step2')
     77     job.next_step('step3')
     78 <BLANKLINE>
     79 def step0():
     80     job.default_profile_only = True
     81 <BLANKLINE>
     82 def step1():
     83     job.profilers.add('iostat')
     84 <BLANKLINE>
     85 def step2():
     86     print "Hi"
     87 <BLANKLINE>
     88     return locals()
     89 <BLANKLINE>
     90 def step3():
     91     job.profilers.delete('iostat')
     92 
     93 # test that multiline quoted strings are not indented
     94 >>> import common
     95 >>> from autotest_lib.frontend.afe import test, control_file
     96 >>> import os
     97 >>> control_path = os.path.join(os.path.dirname(test.__file__),
     98 ...                             'doctests', 'test.control.3')
     99 >>> control_path = os.path.abspath(control_path)
    100 >>> class FakeTest(object):
    101 ...   path = control_path
    102 ...
    103 >>> print control_file.generate_control([FakeTest()], is_server=True) #doctest: +NORMALIZE_WHITESPACE
    104 def step_init():
    105     step0()
    106 def step0():
    107     client_code = """
    108 some content\"""quoted content\"""
    109 '''other quoted content\"""'''
    110 \\"""
    111     client_code2 = '''
    112 some content\'''quoted content\'''
    113 """other quoted content\'''"""
    114 \\'''
    115     job.run_test('testname')
    116 step_init()
    117