# Copyright 2016 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.
import common
from autotest_lib.client.common_lib import error
from autotest_lib.server import test
class brillo_NVRAM(test.test):
"""Test Access-Controlled NVRAM HAL functionality."""
version = 1
TEST_EXECUTABLE = '/data/nativetest/nvram_hal_test/nvram_hal_test'
def _get_prop(self, host, property_name):
"""Returns the value of a system property.
@param host: A host object representing the DUT.
@param property_name: A string holding the property name.
@return: A string holding the property value.
"""
return host.run_output('getprop %s' % property_name).strip()
def run_once(self, host=None):
"""Runs the test.
@param host: A host object representing the DUT.
@raise TestFail: The test executable returned an error.
"""
try:
if self._get_prop(host, 'ro.hardware.nvram') == 'testing':
raise error.TestFail('NVRAM HAL is not hardware-backed')
host.run(self.TEST_EXECUTABLE)
except error.GenericHostRunError as run_error:
raise error.TestFail(run_error)