Allow programmatic blacklisting of unit tests.

BUG=chromium:236158
TEST=Remote trybot run of pre-cq-group.
Change-Id: I8eb4107a361ff9f4b75db4cfe961220d09a71364
Reviewed-on: https://gerrit.chromium.org/gerrit/49440
Reviewed-by: Darin Petkov <petkov@chromium.org>
Tested-by: David James <davidjames@chromium.org>
Commit-Queue: David James <davidjames@chromium.org>
diff --git a/cros_run_unit_tests b/cros_run_unit_tests
index 7b5c12b..678fb0a 100755
--- a/cros_run_unit_tests
+++ b/cros_run_unit_tests
@@ -26,6 +26,8 @@
   "File with space-separated list of packages to run unit tests" f
 DEFINE_string packages "" \
   "Optional space-separated list of packages to run unit tests" p
+DEFINE_string blacklist_packages "" \
+  "List of packages to blacklist from unit tests"
 DEFINE_boolean withdebug "${FLAGS_TRUE}" \
   "Build debug versions of Chromium-OS-specific packages."
 
@@ -73,6 +75,7 @@
 fi
 
 BLACK_LIST_FILE="/usr/share/crostestutils/unit_test_black_list.txt"
+BLACK_LIST_PACKAGES="${FLAGS_blacklist_packages}"
 
 if [ "${FLAGS_withdebug}" -eq "${FLAGS_FALSE}" ]; then
   export USE="${USE} -cros-debug"
@@ -80,7 +83,8 @@
 
 TEST_PACKAGE_LIST=""
 for package in ${PACKAGE_LIST}; do
-  if grep -xq "${package}" "${BLACK_LIST_FILE}"; then
+  if grep -xq "${package}" "${BLACK_LIST_FILE}" || \
+     [[ " ${BLACK_LIST_PACKAGES} " =~ " ${package} " ]]; then
     warn "Skipping package ${package} since it is blacklisted."
     continue
   fi