cros_run_unit_tests: only test installed packages by default

We rarely want to run tests for a package that isn't already installed.
Add an --installed flag (defaulting to on) that ignores them by default.

BUG=chromium:342180
TEST=`./cros_run_unit_tests --board=sonic --pretend` only shows installed packages
TEST=`./cros_run_unit_tests --board=sonic --pretend --noinstalled` shows all packages

Change-Id: I2c7868378763d075c8674e5e496c6886a2a52af4
Reviewed-on: https://chromium-review.googlesource.com/185563
Reviewed-by: Mike Frysinger <vapier@chromium.org>
Tested-by: Mike Frysinger <vapier@chromium.org>
Commit-Queue: Mike Frysinger <vapier@chromium.org>
diff --git a/cros_run_unit_tests b/cros_run_unit_tests
index 3f240f8..85ff912 100755
--- a/cros_run_unit_tests
+++ b/cros_run_unit_tests
@@ -32,6 +32,8 @@
   "Build debug versions of Chromium-OS-specific packages."
 DEFINE_boolean pretend "${FLAGS_FALSE}" \
   "Only show the packages we would test; don't actually test"
+DEFINE_boolean installed "${FLAGS_TRUE}" \
+  "Only test packages that are already installed"
 
 # List of packages with no unit tests.
 NO_UNITTESTS=""
@@ -71,6 +73,10 @@
 # If we didn't specify packages, find all packages.
 if [ -z "${FLAGS_package_file}" -a -z "${FLAGS_packages}" ]; then
   PACKAGE_LIST=$(cros_workon --board "${FLAGS_board}" list --all)
+
+  if [[ ${FLAGS_installed} -eq ${FLAGS_TRUE} ]]; then
+    PACKAGE_LIST=$(qlist-${FLAGS_board} -ICe ${PACKAGE_LIST})
+  fi
 fi
 
 BLACK_LIST_FILE="/usr/share/crostestutils/unit_test_black_list.txt"