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
9from pylib import android_commands
10from pylib.device import device_utils
11import optparse
12import sys
13
14
15def 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
37if __name__ == '__main__':
38  main(sys.argv)
39