""" 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()