# Copyright (c) 2012 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.

AUTHOR = "Chrome OS Team"
NAME = "firmware_ECWriteProtect"
PURPOSE = "Servo based EC write protect test"
CRITERIA = "This test will fail if EC write protect misbehaved"
TIME = "LONG"
TEST_CATEGORY = "Functional"
TEST_CLASS = "firmware"
TEST_TYPE = "server"

DOC = """
This test starts with RO normal mode and enables EC write protect. Software sync
supposed to write protect the entire EC flash, so we expect the following
write protect flags:
  - wp_gpio_asserted
  - ro_at_boot
  - ro_now
  - all_now
These flags are checked under following situations:
  - Cold reset. RO normal.
  - Cold reset. Two stop.
  - Cold reset by ectool. Two stop.
At the end of the test, write protect is deactivated and firmware is restored to
RO normal mode.
"""

def run_ecwriteprotect(machine):
    host = hosts.create_host(machine)
    job.run_test("firmware_ECWriteProtect", host=host, cmdline_args=args,
                 use_faft=True, disable_sysinfo=True,
                 dev_mode=True, tag="dev")

parallel_simple(run_ecwriteprotect, machines)
