| """ |
| This test is to test devices that adbd does not get started as root. |
| Specifically devices that have ro.secure == 1 and ro.debuggable == 1 |
| |
| Running this test case requires various reboots which makes it a |
| very slow test case to run. |
| """ |
| import unittest |
| import sys |
| |
| from mozdevice import DeviceManagerADB |
| |
| class TestFileOperations(unittest.TestCase): |
| def setUp(self): |
| dm = DeviceManagerADB() |
| dm.reboot(wait=True) |
| |
| def test_run_adb_as_root_parameter(self): |
| dm = DeviceManagerADB() |
| self.assertTrue(dm.processInfo("adbd")[2] != "root") |
| dm = DeviceManagerADB(runAdbAsRoot=True) |
| self.assertTrue(dm.processInfo("adbd")[2] == "root") |
| |
| def test_after_reboot_adb_runs_as_root(self): |
| dm = DeviceManagerADB(runAdbAsRoot=True) |
| self.assertTrue(dm.processInfo("adbd")[2] == "root") |
| dm.reboot(wait=True) |
| self.assertTrue(dm.processInfo("adbd")[2] == "root") |
| |
| def tearDown(self): |
| dm = DeviceManagerADB() |
| dm.reboot() |
| |
| if __name__ == "__main__": |
| dm = DeviceManagerADB() |
| if not dm.devices(): |
| print "There are no connected adb devices" |
| sys.exit(1) |
| else: |
| if not (int(dm._runCmd(["shell", "getprop", "ro.secure"]).output[0]) and \ |
| int(dm._runCmd(["shell", "getprop", "ro.debuggable"]).output[0])): |
| print "This test case is meant for devices with devices that start " \ |
| "adbd as non-root and allows for adbd to be restarted as root." |
| sys.exit(1) |
| |
| unittest.main() |