1# Copyright (c) 2011 The Chromium OS Authors. All rights reserved. 2# Use of this source code is governed by a BSD-style license that can be 3# found in the LICENSE file. 4 5# This test isn't really HW specific. It's testing /dev/watchdog API 6# to make sure it works as expected. The most robust implementations is 7# based on real HW but it doesn't have to be. 8 9import logging 10 11# http://docs.python.org/2/library/errno.html 12import errno 13 14from autotest_lib.client.common_lib import error 15from autotest_lib.server import test 16from autotest_lib.server.cros.watchdog_tester import WatchdogTester 17 18 19class platform_HWwatchdog(test.test): 20 """Test to make sure that /dev/watchdog will reboot the system.""" 21 22 version = 1 23 24 def _stop_watchdog(self, client, wd_dev): 25 # HW watchdog is open and closed "properly". 26 try: 27 client.run('echo "V" > %s' % wd_dev) 28 except error.AutoservRunError, e: 29 raise error.TestError('write to %s failed (%s)' % 30 (wd_dev, errno.errorcode[e.errno])) 31 32 def run_once(self, host=None): 33 tester = WatchdogTester(host) 34 # If watchdog not present, just skip this test 35 if not tester.is_supported(): 36 logging.info("INFO: %s not present. Skipping test." % tester.WD_DEV) 37 return 38 39 with tester: 40 self._stop_watchdog(host, tester.WD_DEV) 41 tester.trigger_watchdog() 42