* tramp-sh.el (tramp-get-remote-path): Don't signal error when
explicit tramp path is empty.
* tramp.el (tramp-call-process): Improve trace message.
(tramp-handle-insert-file-contents): Trace error case.

* tramp-adb.el (tramp-adb-file-name-handler-alist)
<insert-directory>: Use `tramp-handle-insert-directory'.
(tramp-adb-handle-insert-directory): Remove function.
(tramp-adb-send-command-and-check): New defun, replacing
`tramp-adb-command-exit-status'.  Change all callees.
(tramp-adb-handle-file-attributes)
(tramp-adb-handle-directory-files-and-attributes): Use it.
(tramp-adb-ls-output-name-less-p): Use
`directory-listing-before-filename-regexp'.
(tramp-adb-handle-delete-directory): Flush also file properties of
the truename of directory.
(tramp-adb-handle-file-name-all-completions): Add "./" and "../".
(tramp-adb-handle-file-local-copy): Make the local copy readable.
(tramp-adb-handle-write-region): Implement APPEND.
(tramp-adb-handle-rename-file): Make it more robust.  Flush file
properties correctly.
(tramp-adb-maybe-open-connection): Set `tramp-current-*'
variables.  Check for connected devices only when needed.
* tramp-tests.el (tramp--test-enabled): Move connection cleanup
into this function.  remove respective code from all test cases.
(tramp--instrument-test-case): Declare `indent' and `debug'.
Handle other errors as well.
(tramp-test14-delete-directory): Check for `file-error' error.
(tramp-test15-copy-directory): Ignore return value of
`copy-directory'.  It's too much hassle to handle it for tramp-adb.el.
(tramp-test19-directory-files-and-attributes): Take care of
timestamp of "../".
(tramp-test20-file-modes, tramp-test27-start-file-process)
(tramp-test28-shell-command): Skip for tramp-adb.el.
(tramp-test21-file-links): `file-truename' shall preserve trailing
link of directories.
(tramp-test22-file-times): Skip if `set-file-times' returns nil.
(tramp-test26-process-file, tramp-test28-shell-command): Let-bind
`kill-buffer-query-functions' to nil.
(tramp-test28-shell-command): Run `async-shell-command' with timeouts.
* tramp-adb.el (tramp-adb-parse-device-names):
Use `accept-process-output'.
(tramp-adb-handle-file-truename): Cache the localname only.
(tramp-adb-handle-make-directory)
(tramp-adb-handle-delete-directory): Flush file properties correctly.
(tramp-adb-handle-set-file-modes): Do not raise an error when file
modes cannot be changed.

* tramp-cache.el (tramp-flush-directory-property): Remove also
file properties of symlinks.
* tramp-tests.el (tramp--test-enabled)
(tramp-test15-copy-directory): No special handling of tramp-adb.el
anymore.  It's fixed in that package.
* Makefile.in (test): New target.
(.PHONY): Add it.
* Makefile.in (test): New target.
(.PHONY): Add it.