#!/usr/bin/env python # # Copyright (c) 2012 The Chromium Authors. All rights reserved. # Use of this source code is governed by a BSD-style license that can be # found in the LICENSE file. """Enables dalvik vm asserts in the android device.""" import argparse import sys import devil_chromium from devil.android import device_blacklist from devil.android import device_utils def main(): parser = argparse.ArgumentParser() parser.add_argument('--blacklist-file', help='Device blacklist JSON file.') set_asserts_group = parser.add_mutually_exclusive_group(required=True) set_asserts_group.add_argument( '--enable_asserts', dest='set_asserts', action='store_true', help='Sets the dalvik.vm.enableassertions property to "all"') set_asserts_group.add_argument( '--disable_asserts', dest='set_asserts', action='store_false', help='Removes the dalvik.vm.enableassertions property') args = parser.parse_args() devil_chromium.Initialize() blacklist = (device_blacklist.Blacklist(args.blacklist_file) if args.blacklist_file else None) # TODO(jbudorick): Accept optional serial number and run only for the # specified device when present. devices = device_utils.DeviceUtils.parallel( device_utils.DeviceUtils.HealthyDevices(blacklist)) def set_java_asserts_and_restart(device): if device.SetJavaAsserts(args.set_asserts): device.RunShellCommand('stop') device.RunShellCommand('start') devices.pMap(set_java_asserts_and_restart) return 0 if __name__ == '__main__': sys.exit(main())