blob: 03ff1b6b65df379d81cbec224b6281f17f99ff4b [file] [log] [blame]
# Copyright (c) 2011 The Chromium OS Authors. All rights reserved.
# Use of this source code is governed by a BSD-style license that can be
# found in the LICENSE file.
from autotest_lib.server.cros.faftsequence import FAFTSequence
class firmware_CorruptKernelA(FAFTSequence):
"""
Servo based kernel A corruption test.
This test corrupts kernel A and checks for kernel B on the next boot.
It will fail if kernel verification mis-behaved.
"""
version = 1
def setup(self, dev_mode=False):
super(firmware_CorruptKernelA, self).setup()
self.setup_dev_mode(dev_mode)
self.setup_usbkey(usbkey=False)
self.setup_kernel('a')
def cleanup(self):
self.ensure_kernel_boot('a')
super(firmware_CorruptKernelA, self).cleanup()
def run_once(self):
self.register_faft_sequence((
{ # Step 1, corrupt kernel A
'state_checker': (self.checkers.root_part_checker, 'a'),
'userspace_action': (self.faft_client.kernel.corrupt_sig, 'a'),
},
{ # Step 2, expected kernel B boot and restore kernel A
'state_checker': (self.checkers.root_part_checker, 'b'),
'userspace_action': (self.faft_client.kernel.restore_sig, 'a'),
},
{ # Step 3, expected kernel A boot
'state_checker': (self.checkers.root_part_checker, 'a'),
},
))
self.run_faft_sequence()