mbligh | d6d043c | 2008-09-27 21:00:45 +0000 | [diff] [blame] | 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): |
mbligh | 1ef218d | 2009-08-03 16:57:56 +0000 | [diff] [blame] | 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}) |