blob: 727901ebb5942ff42463a62edc33cfb37bd4b300 [file] [log] [blame]
# Copyright 2018 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 logging
import os
from autotest_lib.client.bin import utils
from autotest_lib.client.common_lib import error
from autotest_lib.client.cros.enterprise import enterprise_policy_base
class policy_ExternalStorageReadOnly(
version = 1
POLICY_NAME = 'ExternalStorageReadOnly'
'True_Block': True,
'False_Allow': False,
'NotSet_Allow': None
TEST_FILE = os.path.join(os.sep, 'media', 'removable', 'STATE', 'test')
def cleanup(self):
"""Delete the test file, if it was created."""
except OSError:
# The remove call fails if the file isn't created, but that's ok.
super(policy_ExternalStorageReadOnly, self).cleanup()
def _test_external_storage(self, policy_value):
Verify the behavior of the ExternalStorageReadOnly policy.
Attempt to create TEST_FILE on the external storage. This should fail
if the policy is set to True and succeed otherwise.
@param policy_value: policy value for this case.
@raises error.TestFail: If the permissions of the /media/removable
directory do not match the policy behavior.
# Attempt to modify the external storage by creating a file.
return_code ='touch %s' % self.TEST_FILE)
except error.CmdError:
if not policy_value:
raise error.TestFail('External storage not readonly but '
'unable to write to storage')
if policy_value:
raise error.TestFail('External storage was readonly but '
'external storage was modified')
def run_once(self, case):
Setup and run the test configured for the specified test case.
@param case: Name of the test case to run.
case_value = self.TEST_CASES[case]
self.setup_case(user_policies={self.POLICY_NAME: case_value})