kselftest: Make each test individually selectable

Test to run test collections (or tests) individually selectable
testcase these new parameters added.

TST_CMDFILES="bpf cpufreq net timers"
TST_CASENAME="cpu-hotplug:cpu-on-off-test.sh"

Signed-off-by: Naresh Kamboju <naresh.kamboju@linaro.org>
diff --git a/automated/linux/kselftest/kselftest.sh b/automated/linux/kselftest/kselftest.sh
index 4683bd7..9d64c5e 100755
--- a/automated/linux/kselftest/kselftest.sh
+++ b/automated/linux/kselftest/kselftest.sh
@@ -19,6 +19,8 @@
 ENVIRONMENT=""
 SKIPLIST=""
 TESTPROG_URL=""
+TST_CMDFILES=""
+TST_CASENAME=""
 
 # Architecture-specific tarball name defaults.
 if [ "$(uname -m)" = "aarch64" ]; then
@@ -28,7 +30,9 @@
 fi
 
 usage() {
-    echo "Usage: $0 [-t kselftest_aarch64.tar.gz | kselftest_armhf.tar.gz]
+    echo "Usage: $0 [-c bpf cpufreq net timers]
+                    [-T cpu-hotplug:cpu-on-off-test.sh]
+                    [-t kselftest_aarch64.tar.gz | kselftest_armhf.tar.gz]
                     [-s True|False]
                     [-u url]
                     [-p path]
@@ -40,8 +44,10 @@
     exit 1
 }
 
-while getopts "t:s:u:p:L:S:b:g:e:h" opt; do
+while getopts "c:T:t:s:u:p:L:S:b:g:e:h" opt; do
     case "${opt}" in
+        c) TST_CMDFILES="${OPTARG}" ;;
+        T) TST_CASENAME="${OPTARG}" ;;
         t) TESTPROG="${OPTARG}" ;;
         s) SKIP_INSTALL="${OPTARG}" ;;
         # Download kselftest tarball from given URL
@@ -204,6 +210,14 @@
 echo "========================================"
 rm -f "${skips}"
 
-# run_kselftest.sh file generated by kselftest Makefile and included in tarball
-./run_kselftest.sh 2>&1 | tee "${LOGFILE}"
+if [ -n "${TST_CASENAME}" ]; then
+	./run_kselftest.sh -t "${TST_CASENAME}" 2>&1 | tee -a "${LOGFILE}"
+elif [ -n "${TST_CMDFILES}" ]; then
+    # shellcheck disable=SC2086
+    for test in ${TST_CMDFILES}; do
+	./run_kselftest.sh -c ${test} 2>&1 | tee -a "${LOGFILE}"
+    done
+else
+    ./run_kselftest.sh 2>&1 | tee "${LOGFILE}"
+fi
 parse_output