run-unit-test-docker.sh: add INTERACTIVE option

This allows running an interactive bash shell instead of the default
unit testing script.

Tested: Ran with and without "INTERACTIVE=true"

Signed-off-by: Benjamin Fair <benjaminfair@google.com>
Change-Id: Ifaee7d0dd705466ce70ad49aae48ac9a4a7ab522
diff --git a/run-unit-test-docker.sh b/run-unit-test-docker.sh
index cfb30c1..fd3c3f7 100755
--- a/run-unit-test-docker.sh
+++ b/run-unit-test-docker.sh
@@ -23,6 +23,7 @@
 #                         `/usr/share/dbus-1/system.conf`
 #   NO_FORMAT_CODE:  Optional, do not run format-code.sh
 #   EXTRA_UNIT_TEST_ARGS:  Optional, pass arguments to unit-test.py
+#   INTERACTIVE: Optional, run a bash shell instead of unit-test.py
 
 # Trace bash processing. Set -e so when a step fails, we fail the build
 set -uo pipefail
@@ -42,6 +43,7 @@
 MAKEFLAGS="${MAKEFLAGS:-""}"
 DOCKER_WORKDIR="${DOCKER_WORKDIR:-$WORKSPACE}"
 NO_FORMAT_CODE="${NO_FORMAT_CODE:-}"
+INTERACTIVE="${INTERACTIVE:-}"
 
 # Timestamp for job
 echo "Unit test build started, $(date)"
@@ -97,9 +99,13 @@
 EXTRA_UNIT_TEST_ARGS="${EXTRA_UNIT_TEST_ARGS:+,${EXTRA_UNIT_TEST_ARGS/ /,}}"
 
 # Unit test and parameters
-UNIT_TEST="${DOCKER_WORKDIR}/${UNIT_TEST_PY},-w,${DOCKER_WORKDIR},\
+if [ "${INTERACTIVE}" ]; then
+    UNIT_TEST="/bin/bash"
+else
+    UNIT_TEST="${DOCKER_WORKDIR}/${UNIT_TEST_PY},-w,${DOCKER_WORKDIR},\
 -p,${UNIT_TEST_PKG},-b,$BRANCH,-v${TEST_ONLY:+,-t}${NO_FORMAT_CODE:+,-n}\
 ${EXTRA_UNIT_TEST_ARGS}"
+fi
 
 # Run the docker unit test container with the unit test execution script
 echo "Executing docker image"
@@ -108,7 +114,7 @@
     -u "$USER" \
     -w "${DOCKER_WORKDIR}" -v "${WORKSPACE}":"${DOCKER_WORKDIR}" \
     -e "MAKEFLAGS=${MAKEFLAGS}" \
-    -t "${DOCKER_IMG_NAME}" \
+    -${INTERACTIVE:+i}t "${DOCKER_IMG_NAME}" \
     "${DOCKER_WORKDIR}"/${DBUS_UNIT_TEST_PY} -u "${UNIT_TEST}" \
     -f "${DBUS_SYS_CONFIG_FILE}"