Home | History | Annotate | Download | only in android
      1 #!/usr/bin/env python
      2 #
      3 # Copyright (c) 2012 The Chromium Authors. All rights reserved.
      4 # Use of this source code is governed by a BSD-style license that can be
      5 # found in the LICENSE file.
      6 
      7 """Enables dalvik vm asserts in the android device."""
      8 
      9 from pylib import android_commands
     10 from pylib.device import device_utils
     11 import optparse
     12 import sys
     13 
     14 
     15 def main(argv):
     16   option_parser = optparse.OptionParser()
     17   option_parser.add_option('--enable_asserts', dest='set_asserts',
     18       action='store_true', default=None,
     19       help='Sets the dalvik.vm.enableassertions property to "all"')
     20   option_parser.add_option('--disable_asserts', dest='set_asserts',
     21       action='store_false', default=None,
     22       help='Removes the dalvik.vm.enableassertions property')
     23   options, _ = option_parser.parse_args(argv)
     24 
     25   # TODO(jbudorick): Accept optional serial number and run only for the
     26   # specified device when present.
     27   devices = android_commands.GetAttachedDevices()
     28   for device in [device_utils.DeviceUtils(serial) for serial in devices]:
     29     if options.set_asserts != None:
     30       if device.SetJavaAsserts(options.set_asserts):
     31         # TODO(jbudorick) How to best do shell restarts after the
     32         #                 android_commands refactor?
     33         device.RunShellCommand('stop')
     34         device.RunShellCommand('start')
     35 
     36 
     37 if __name__ == '__main__':
     38   main(sys.argv)
     39