Home | History | Annotate | Download | only in ipv6connect
      1 import os, re, sys
      2 
      3 from autotest_lib.client.bin import test
      4 from autotest_lib.client.common_lib import utils
      5 
      6 
      7 class ipv6connect(test.test):
      8     version = 1
      9 
     10     preserve_srcdir = True
     11 
     12     def setup(self, src='ipv6connect.c'):
     13         os.chdir(self.srcdir)
     14         utils.system('gcc ipv6connect.c -o ipv6connect -lpthread -static -s')
     15 
     16 
     17     def initialize(self):
     18         self.job.require_gcc()
     19         self.results = []
     20 
     21 
     22     def run_once(self, dir=None, nprocs=None, args=''):
     23         (lower, upper) = utils.get_ip_local_port_range()
     24         utils.set_ip_local_port_range(4096, 65535)
     25         try:
     26             result = utils.run(os.path.join(self.srcdir, 'ipv6connect'),
     27                                None, False,
     28                                stdout_tee=sys.stdout, stderr_tee=sys.stderr)
     29         finally:
     30             utils.set_ip_local_port_range(lower, upper)
     31         self.results.append(result.stderr)
     32 
     33 
     34     def postprocess(self):
     35         pattern = re.compile(r'\nTotal time = ([0-9.]+)s\n')
     36         for duration in pattern.findall('\n'.join(self.results)):
     37             self.write_perf_keyval({'time': duration})
     38