google / google/mobly-snippet-lib

Better error message for when specified snippet class does not exist

Open
#30 2 comments 0 reactions 1 assignee Claimed by @adorokhine View on GitHub
improvement
Dominant language
No language data
Stars
44
Forks
25
PR merge metrics
No merged PRs in 30d

Description

If the snippet manifest's meta-data has classes that don't exist, say:

```xml

```

Snippet simply crashes on launching with no proper error message:
```
$ snippet_shell.py com.my.snippet
INFO:root:Stopping snippet apk with: am instrument -w -e action stop com.my.snippet/com.google.android.mobly.snippet.SnippetRunner
INFO:root:Launching snippet apk with: am instrument -e action start -e port 3429 com.my.snippet/com.google.android.mobly.snippet.SnippetRunner
Traceback (most recent call last):
File "/usr/local/bin/snippet_shell.py", line 10, in
execfile(__file__)
File "/usr/local/google/home/angli/Developer/mobly/tools/snippet_shell.py", line 65, in
SnippetShell(args.package[0]).main(args.serial)
File "/usr/local/google/home/angli/Developer/mobly/mobly/controllers/android_device_lib/jsonrpc_shell_base.py", line 86, in main
self.start_console()
File "/usr/local/google/home/angli/Developer/mobly/mobly/controllers/android_device_lib/jsonrpc_shell_base.py", line 71, in start_console
self._start_services(console_env)
File "/usr/local/google/home/angli/Developer/mobly/tools/snippet_shell.py", line 42, in _start_services
self._ad.load_snippet(name='snippet', package=self._package)
File "/usr/local/google/home/angli/Developer/mobly/mobly/controllers/android_device.py", line 566, in load_snippet
self._start_jsonrpc_client(client, host_port, device_port)
File "/usr/local/google/home/angli/Developer/mobly/mobly/controllers/android_device.py", line 608, in _start_jsonrpc_client
client.connect(port=host_port)
File "/usr/local/google/home/angli/Developer/mobly/mobly/controllers/android_device_lib/jsonrpc_client_base.py", line 212, in connect
resp = self._cmd(cmd, uid)
File "/usr/local/google/home/angli/Developer/mobly/mobly/controllers/android_device_lib/jsonrpc_client_base.py", line 242, in _cmd
return self._client.readline()
File "/usr/lib/python2.7/socket.py", line 447, in readline
data = self._sock.recv(self._rbufsize)
socket.error: [Errno 104] Connection reset by peer
```

Contributor guide

Open the contributing guide

Assessment

This issue has not been assessed yet.

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.