Fixed a failed unit test and added more to the setup scenario.
Change-Id: I28ee6627834f8964d5d06756afb44e6213c8afaa
diff --git a/tools/test/bin/onos-check-apps b/tools/test/bin/onos-check-apps
new file mode 100755
index 0000000..03df7dc
--- /dev/null
+++ b/tools/test/bin/onos-check-apps
@@ -0,0 +1,20 @@
+#!/bin/bash
+# -----------------------------------------------------------------------------
+# Checks whether all and only the ONOS apps configured in ONOS_APPS are active.
+# -----------------------------------------------------------------------------
+
+aux=/tmp/stc-$$.log
+trap "rm -f $aux $aux.1 $aux.2 2>/dev/null" EXIT
+
+onos ${1:-$OCI} "onos:apps -s -a" > $aux
+cat $aux
+
+# Normalize the installed apps
+cut -c7- $aux | cut -d\ -f1 | sort > $aux.1
+
+# Normalize the expected apps
+apps=${ONOS_APPS:-drivers,openflow}
+(for app in ${apps/,/ }; do echo org.onosproject.$app; done) | sort > $aux.2
+
+# Check for differences
+diff $aux.1 $aux.2
diff --git a/tools/test/bin/onos-check-components b/tools/test/bin/onos-check-components
new file mode 100755
index 0000000..38fb9a3
--- /dev/null
+++ b/tools/test/bin/onos-check-components
@@ -0,0 +1,11 @@
+#!/bin/bash
+# -----------------------------------------------------------------------------
+# Checks whether all ONOS components are either ACTIVE or DISABLED.
+# -----------------------------------------------------------------------------
+
+aux=/tmp/stc-$$.log
+trap "rm -f $aux 2>/dev/null" EXIT
+
+onos ${1:-$OCI} scr:list > $aux
+cat $aux
+grep -q UNSATISFIED $aux && exit 1 || exit 0
diff --git a/tools/test/scenarios/prerequisites.xml b/tools/test/scenarios/prerequisites.xml
index 55d8c0d..650aa41 100644
--- a/tools/test/scenarios/prerequisites.xml
+++ b/tools/test/scenarios/prerequisites.xml
@@ -17,6 +17,7 @@
<group name="Prerequisites">
<step name="Check-Environment" exec="test -n ${ONOS_ROOT} -a -n ${ONOS_NIC} -a -n ${OC1}"/>
<step name="Check-ONOS-Bits" exec="onos-check-bits"/>
+
<parallel var="${OC#}">
<step name="Check-Passwordless-Login-${#}"
exec="ssh -n -o ConnectTimeout=3 -o PasswordAuthentication=no sdn@${OC#} date"/>
diff --git a/tools/test/scenarios/setup.xml b/tools/test/scenarios/setup.xml
index bd12216..d43e77c 100644
--- a/tools/test/scenarios/setup.xml
+++ b/tools/test/scenarios/setup.xml
@@ -16,14 +16,22 @@
<scenario name="setup" description="ONOS cluster setup">
<group name="Setup">
<step name="Push-Bits" exec="onos-push-bits-through-proxy" if="${OCT}"/>
+
<parallel var="${OC#}">
<step name="Uninstall-${#}" exec="onos-uninstall ${OC#}"/>
+
<step name="Install-${#}" exec="onos-install ${OC#}"
requires="Uninstall-${#},Push-Bits"/>
+
<step name="Wait-for-Start-${#}" exec="onos-wait-for-start ${OC#}"
requires="Install-${#}"/>
+
<step name="Check-Logs-${#}" exec="onos-check-logs ${OC#}"
requires="-Wait-for-Start-${#}"/>
+ <step name="Check-Components-${#}" exec="onos-check-components ${OC#}"
+ requires="-Wait-for-Start-${#}"/>
+ <step name="Check-Apps-${#}" exec="onos-check-apps ${OC#}"
+ requires="-Wait-for-Start-${#}"/>
</parallel>
</group>
</scenario>