Commit Graph

10 Commits

Author SHA1 Message Date
David Pursell
cebec2b69b device.py: fix _subprocess_Popen cleanup.
Every time gdbclient.py finishes it's giving this error:

Exception TypeError: 'must be type, not None' in <bound method
_subprocess_Popen.__del__ of <adb.device._subprocess_Popen object at
0x7fdd48e76850>> ignored

Basically super(_subprocess_Popen, self) was failing because at that
point _subprocess_Popen is None since global teardown had already
deleted the reference.

This fix saves local references to required global objects so that they
stick around until we're done with them. We may want to start looking
into making _subprocess_Popen a context manager instead, usage won't be
as convenient but __del__() does not scale to general use well. For now
though this CL seems to solve the problem for gdbclient.py.

Change-Id: I6c2a9fe0c108ae600cf05eb3b887d56959c7308e
2015-10-20 10:29:21 -07:00
Spencer Low
4160958015 adb unittest: fix Windows Unicode
adb.shell() was recently changed to use subprocess.Popen(), which
doesn't work properly with Unicode on Windows. The fix is to use the
same work-around that I did for subprocess.check_output(): write UTF-8
to a batch file and run it. The change is primarily refactoring to
enable code reuse.

Change-Id: I88e9b9b35e5318533c0cd932d92e13bc9e734092
Signed-off-by: Spencer Low <CompareAndSwap@gmail.com>
2015-10-13 19:51:30 -07:00
David Pursell
45d61d070f adb: fix docstring for shell functions.
Change-Id: Iaae8605b18583c38e517f865083012204d236832
2015-10-12 15:55:38 -07:00
David Pursell
46e268e990 adb: make shell protocol work again.
http://r.android.com/173810 changed the shell feature name. This CL
updates the python scripts to re-enable shell protocol tests, and adds
an additional test for `adb shell -x`.

Change-Id: I961adf7abd1782ea98f3f82d8af11dcaa02f9570
2015-09-30 17:22:32 -07:00
Josh Gao
87df6ff2c8 Add get_props to adb.py's AndroidDevice.
Saves adb shell roundtrips if multiple properties are needed.

Change-Id: I3a9fc0354b6eb0ee5389984e3f345c380404658c
2015-09-30 14:36:35 -07:00
Josh Gao
cac4e977bb Add remount to adb.py's AndroidDevice.
Change-Id: If1e17a49e81af840b76eab52db89bc9de09958fe
2015-09-30 14:36:35 -07:00
Josh Gao
21f984939b Add shell_popen method to adb.py.
This is mostly to allow backgrounding of processes run through adb
(gdbserver in particular).

Bug: http://b/23715403
Change-Id: I47fbebbd05d58044b4c447ffa86e0ab97d920278
2015-09-30 14:36:35 -07:00
Josh Gao
a8731c4be0 Add helper functions for adb -e/-d to adb.py.
Bug: http://b/22946322
Change-Id: I847f561d617b17f4e6323e0abb46dd270d041782
2015-09-30 14:36:35 -07:00
David Pursell
d89fcd4f76 adb: add tests for -Tt shell arguments.
Adds python tests to check that -T (disable PTY) and -t (force PTY)
arguments work as expected for `adb shell`.

Bug: http://b/23825231
Change-Id: I5343fae35b2be8459a9b95125f66def46c26adf4
2015-09-22 12:50:39 -07:00
Dan Albert
32e1307f45 Move python-adb from system/core/adb.
This really ought to be maintained as a separate project. Also adds a
setup.py for distribution.

Bug: http://b/22881740
Change-Id: I8e11e4154fac21d3196a533613822b236b2b73e6
2015-09-18 13:41:56 -07:00