OLD | NEW |
1 #!/usr/bin/env python | 1 #!/usr/bin/env python |
2 # Copyright (c) 2013 The Chromium Authors. All rights reserved. | 2 # Copyright (c) 2013 The Chromium Authors. All rights reserved. |
3 # Use of this source code is governed by a BSD-style license that can be | 3 # Use of this source code is governed by a BSD-style license that can be |
4 # found in the LICENSE file. | 4 # found in the LICENSE file. |
5 import os | 5 import os |
6 import sys | 6 import sys |
7 | 7 |
| 8 def _DoDBusWorkaround(): |
| 9 # Attempt to work around bug in GLib by getting DBus session bus |
| 10 # address early. crbug.com/309093 |
| 11 import platform |
| 12 import re |
| 13 import subprocess |
| 14 if (platform.uname()[0].lower() == 'linux' and |
| 15 'DBUS_SESSION_BUS_ADDRESS' not in os.environ): |
| 16 try: |
| 17 dbus_output = subprocess.check_output(['dbus-launch']).split('\n') |
| 18 for line in dbus_output: |
| 19 m = re.match(r"([^=]+)\=(.+)", line) |
| 20 if m: |
| 21 os.environ[m.group(1)] = m.group(2) |
| 22 except: |
| 23 pass |
| 24 |
8 sys.path.append(os.path.join(os.path.dirname(__file__), | 25 sys.path.append(os.path.join(os.path.dirname(__file__), |
9 os.pardir, os.pardir, os.pardir, 'tools', 'telemetry')) | 26 os.pardir, os.pardir, os.pardir, 'tools', 'telemetry')) |
10 | 27 |
11 from telemetry import test_runner | 28 from telemetry import test_runner |
12 | 29 |
13 if __name__ == '__main__': | 30 if __name__ == '__main__': |
| 31 _DoDBusWorkaround() |
14 sys.exit(test_runner.Main()) | 32 sys.exit(test_runner.Main()) |
OLD | NEW |