1#
2# Copyright (C) 2017 The Android Open Source Project
3#
4# Licensed under the Apache License, Version 2.0 (the "License");
5# you may not use this file except in compliance with the License.
6# You may obtain a copy of the License at
7#
8#      http://www.apache.org/licenses/LICENSE-2.0
9#
10# Unless required by applicable law or agreed to in writing, software
11# distributed under the License is distributed on an "AS IS" BASIS,
12# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13# See the License for the specific language governing permissions and
14# limitations under the License.
15#
16from vts.testcases.kernel.api.selinux import KernelSelinuxFileTestBase
17from vts.utils.python.file import target_file_utils
18
19
20class SelinuxCheckReqProt(KernelSelinuxFileTestBase.KernelSelinuxFileTestBase):
21    """Validate /sys/fs/selinux/checkreqprot content and permissions.
22
23    The contents are binary 0/1 and the file should be read/write.
24    """
25
26    def get_path(self):
27        return "/sys/fs/selinux/checkreqprot"
28
29    def result_correct(self, file_content):
30        """Return True if the file contents are simply 0/1.
31
32        Args:
33            file_contents: String, the contents of the checkreqprot file
34
35        Returns:
36            True if the contents are 0/1, False otherwise.
37        """
38        return file_content == "0" or file_content == "1"
39
40    def get_permission_checker(self):
41        """Gets the function handle to validate r/w file permissions."""
42        return target_file_utils.IsReadWrite
43