Snap for 6169764 from 4c0b0e0d3b853953744a3605d82efc881dfa6a5e to qt-qpr3-release

Change-Id: I3abc4f70c5bbbfb5ee9b372ca9a70b422a589310
diff --git a/api/proc/KernelProcFileTestBase.py b/api/proc/KernelProcFileTestBase.py
index aeaac70..472961c 100644
--- a/api/proc/KernelProcFileTestBase.py
+++ b/api/proc/KernelProcFileTestBase.py
@@ -137,6 +137,9 @@
         self.parser = yacc.yacc(module=self, write_tables=False, \
                 errorlog=yacc.PlyLogger(sys.stderr)) #open(os.devnull, 'w')))
 
+    def set_api_level(self, dut):
+        self.api_level = dut.getLaunchApiLevel(strict=False)
+
     def parse_line(self, rule, line, custom={}):
         """Parse a line of text with the parse library.
 
diff --git a/api/proc/ProcSimpleFileTests.py b/api/proc/ProcSimpleFileTests.py
index e19600d..5bc9678 100644
--- a/api/proc/ProcSimpleFileTests.py
+++ b/api/proc/ProcSimpleFileTests.py
@@ -18,6 +18,7 @@
 
 from parse import with_pattern
 from vts.testcases.kernel.api.proc import KernelProcFileTestBase
+from vts.utils.python.android import api
 from vts.utils.python.file import target_file_utils
 
 # Test for /proc/sys/kernel/*.
@@ -439,9 +440,18 @@
     def get_path(self):
         return "/proc/sys/vm/drop_caches"
 
-    def get_permission_checker(self):
-        return target_file_utils.IsReadWrite
+    def IsReadWriteOrWriteOnly(self, permission_bits):
+        return (target_file_utils.IsReadWrite(permission_bits) or
+                target_file_utils.IsWriteOnly(permission_bits))
 
+    def get_permission_checker(self):
+        if self.api_level > api.PLATFORM_API_LEVEL_Q:
+            return target_file_utils.IsWriteOnly
+        else:
+            return self.IsReadWriteOrWriteOnly
+
+    def test_format(self):
+        return False
 
 class ProcExtraFreeKbytes(KernelProcFileTestBase.KernelProcFileTestBase):
     '''/proc/sys/vm/extra_free_kbytes tells the VM to keep extra free memory
diff --git a/api/proc/VtsKernelProcFileApiTest.py b/api/proc/VtsKernelProcFileApiTest.py
index 3451f5c..5a2b324 100644
--- a/api/proc/VtsKernelProcFileApiTest.py
+++ b/api/proc/VtsKernelProcFileApiTest.py
@@ -141,6 +141,7 @@
         """
         asserts.skipIf(test_object in TEST_OBJECTS_64 and not self.dut.is64Bit,
                        "Skip test for 64-bit kernel.")
+        test_object.set_api_level(self.dut)
         filepath = test_object.get_path()
         asserts.skipIf(not target_file_utils.Exists(filepath, self.shell) and
                        test_object.file_optional(shell=self.shell, dut=self.dut),