#!/bin/bash
-REQUIREDSOCKETS="cynara.socket dbus.socket security-manager.socket"
-REQUIREDSERVICES="afm-system-daemon.service afm-user-daemon.service connman.service ofono.service weston.service HomeScreen.service lightmediascanner.service bluetooth.service"
+export LANG=C
+export TERM=dumb
+export COLUMNS=1000
+
+while getopts ":b:d:" option; do
+ case "${option}" in
+ b)
+ if [[ $OPTARG = -* ]]; then
+ ((OPTIND--))
+ continue
+ fi
+ BUILD_TAGS=${OPTARG}
+ ;;
+ d)
+ DEVICE_TAGS=${OPTARG}
+ ;;
+ esac
+done
+
+REQUIREDSOCKETS="dbus.socket security-manager.socket"
+REQUIREDSERVICES="afm-system-daemon.service connman.service ofono.service weston.service bluetooth.service"
ALL="${REQUIREDSOCKETS} ${REQUIREDSERVICES}"
RESULT="unknown"
# add delay for services to fully start
-sleep 5
+sleep 10
for i in ${ALL} ; do
- echo -e "\n########## Test for service ${i} being active ##########\n"
- systemctl is-active ${i} >/dev/null 2>&1
- if [ $? -eq 0 ] ; then
- RESULT="pass"
- else
- RESULT="fail"
+ echo -e "\n\n########## Test for service ${i} being active ##########\n\n"
+ RESULT=""
+ if [[ ${i} == "weston.service" ]]; then
+ if [[ ${DEVICE_TAGS} != *"screen"* ]] || [[ ${BUILD_TAGS} != *"screen"* ]]; then
+ RESULT="skip"
+ fi
+ fi
+ if [[ -z $RESULT ]]; then
+ systemctl is-active ${i} >/dev/null 2>&1
+ if [ $? -eq 0 ] ; then
+ RESULT="pass"
+ else
+ RESULT="fail"
+ if [[ ${i} == "bluetooth.service" ]]; then
+ if [[ ${DEVICE_TAGS} != *"bluetooth"* ]] || [[ ${BUILD_TAGS} != *"bluetooth"* ]]; then
+ RESULT="skip"
+ fi
+ fi
+ if [[ ${i} == "ofono.service" ]]; then
+ if [[ ${DEVICE_TAGS} != *"bluetooth"* ]] || [[ ${BUILD_TAGS} != *"bluetooth"* ]]; then
+ RESULT="skip"
+ fi
+ fi
+ fi
fi
+
lava-test-case ${i} --result ${RESULT}
+ systemctl status ${i} || true
+ echo -e "\n\n"
- if [ x"fail" == x"${RESULT}" ] ; then
- systemctl status ${i} || true
- fi
- echo -e "\n########## Result for service ${i} : $RESULT ##########\n"
+ echo -e "\n\n########## Result for service ${i} : $RESULT ##########\n\n"
done
-exit 0
\ No newline at end of file
+echo "------------------------------------------------"
+echo "All systemd units:"
+echo "------------------------------------------------"
+systemctl list-units || true
+echo "------------------------------------------------"
+echo "Only the failed systemd units:"
+echo "------------------------------------------------"
+( systemctl list-units | grep failed ) || true
+
+exit 0