OLD | NEW |
1 # Copyright (c) 2010 The Chromium OS Authors. All rights reserved. | 1 # Copyright (c) 2010 The Chromium OS Authors. All rights reserved. |
2 # Use of this source code is governed by a BSD-style license that can be | 2 # Use of this source code is governed by a BSD-style license that can be |
3 # found in the LICENSE file. | 3 # found in the LICENSE file. |
4 | 4 |
5 import logging, math, re, utils | 5 import logging, math, re, utils |
6 from autotest_lib.client.bin import site_log_reader, test | 6 from autotest_lib.client.bin import site_log_reader, test |
7 from autotest_lib.client.common_lib import error | 7 from autotest_lib.client.common_lib import error |
8 | 8 |
9 class platform_AccurateTime(test.test): | 9 class platform_AccurateTime(test.test): |
10 version = 1 | 10 version = 1 |
11 | 11 |
12 | 12 |
13 def __get_offset(self, string): | 13 def __get_offset(self, string): |
14 offset = re.search(r'(-?[\d+\.]+)s', string) | 14 » if (string.find('No time correction needed') > -1) : |
15 if offset is None: | 15 return float(0.0) |
16 # If string is empty, check the sys logs dumped later. | 16 else : |
17 raise error.TestError('Unable to find offset in %s' % string) | 17 offset = re.search(r'Setting (-?[\d+\.]+) seconds', string) |
18 return float(offset.group(1)) | 18 if offset is None: |
19 | 19 # If string is empty, check the sys logs dumped later. |
| 20 raise error.TestError('Unable to find offset in %s' % string) |
| 21 return float(offset.group(1)) |
20 | 22 |
21 def run_once(self): | 23 def run_once(self): |
22 reader = site_log_reader.LogReader() | 24 reader = site_log_reader.LogReader() |
23 reader.set_start_by_current() | 25 reader.set_start_by_current() |
24 # Check ntpd is currently running | 26 # Check ntpd is currently running |
25 if utils.system('pgrep ntpd', ignore_status=True) != 0: | 27 if utils.system('pgrep ntpd', ignore_status=True) != 0: |
26 raise error.TestError('NTP server was not already running') | 28 raise error.TestError('NTP server was not already running') |
27 # Stop it since we cannot force ntp requests unless its not running | 29 # Stop it since we cannot force ntp requests unless its not running |
28 utils.system('initctl stop ntp') | 30 utils.system('initctl stop ntp') |
29 try: | 31 try: |
30 # Now grab the current time and get its offset | 32 # Now grab the current time and get its offset |
31 output = utils.system_output('ntpd -g -u ntp:ntp -q', | 33 cmd = '/usr/sbin/htpdate -u ntp:ntp -s -t -w www.google.com'; |
32 retain_output=True) | 34 output = utils.system_output(cmd,retain_output=True) |
33 server_offset = self.__get_offset(output) | 35 server_offset = self.__get_offset(output) |
34 logging.info("server time offset: %f" % server_offset) | 36 logging.info("server time offset: %f" % server_offset) |
35 | 37 |
36 self.write_perf_keyval({'seconds_offset': abs(server_offset)}) | 38 self.write_perf_keyval({'seconds_offset': abs(server_offset)}) |
37 finally: | 39 finally: |
38 utils.system('initctl start ntp') | 40 utils.system('initctl start ntp') |
39 logging.debug('sys logs emitted: %s' % reader.get_logs()) | 41 logging.debug('sys logs emitted: %s' % reader.get_logs()) |
OLD | NEW |