Add STC scenario for drivers queries
Change-Id: I4a7b77c147dd35b10179d42bb702c22012451f0c
diff --git a/tools/test/bin/onos-find-driver b/tools/test/bin/onos-find-driver
new file mode 100755
index 0000000..e796040
--- /dev/null
+++ b/tools/test/bin/onos-find-driver
@@ -0,0 +1,36 @@
+#!/bin/bash
+# -----------------------------------------------------------------------------
+# Checks that all intents in the system have a given state.
+# -----------------------------------------------------------------------------
+
+[ ! -d "$ONOS_ROOT" ] && echo "ONOS_ROOT is not defined" >&2 && exit 1
+. $ONOS_ROOT/tools/build/envDefaults
+
+aux=/tmp/stc-$$.log
+trap "rm -f $aux 2>/dev/null" EXIT
+target=${1:-$OCI}
+
+echo onos-find-driver: $*
+
+node=$1
+driver=$2
+id=$3
+set -x
+
+onos $target "onos:drivers" | tee $aux
+driverString=`cat $aux | grep "driver=$driver"`
+if [ driverString != "" ]
+then
+ for token in $driverString
+ do
+ if [[ $token =~ "driver=" ]]
+ then
+ echo "@stc ${id}Driver=${token}"
+ exit 0
+ fi
+ done
+fi
+
+cat $aux
+exit 1
+
diff --git a/tools/test/scenarios/drivers-test.xml b/tools/test/scenarios/drivers-test.xml
new file mode 100644
index 0000000..8ff1be1
--- /dev/null
+++ b/tools/test/scenarios/drivers-test.xml
@@ -0,0 +1,55 @@
+<!--
+ ~ Copyright 2016 Open Networking Laboratory
+ ~
+ ~ Licensed under the Apache License, Version 2.0 (the "License");
+ ~ you may not use this file except in compliance with the License.
+ ~ You may obtain a copy of the License at
+ ~
+ ~ http://www.apache.org/licenses/LICENSE-2.0
+ ~
+ ~ Unless required by applicable law or agreed to in writing, software
+ ~ distributed under the License is distributed on an "AS IS" BASIS,
+ ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ ~ See the License for the specific language governing permissions and
+ ~ limitations under the License.
+ -->
+<scenario name="drivers-test"
+ description="Driver CLI activate/deactivate test">
+ <group name="Drivers-Test">
+
+ <!-- Check initial state of select drivers -->
+ <step name="DriversTest.FindOvsCorsa"
+ exec="onos-find-driver ${OC1} ovs-corsa ovs" />
+ <step name="DriversTest.CheckOvsCorsa" requires="^"
+ exec="test '${ovsDriver}' != ''"/>
+ <step name="DriversTest.Default" requires="^"
+ exec="onos-find-driver ${OC1} default default" />
+ <step name="DriversTest.CheckDefault" requires="^"
+ exec="test '${defaultDriver}' != ''"/>
+
+ <!-- Deactivate drivers app -->
+ <step name="DriversTest.DeactivateDriversApp" requires="^"
+ exec="onos ${OCI} onos:app deactivate org.onosproject.drivers"/>
+
+ <!-- Check that drivers are no longer present -->
+ <step name="DriversTest.AfterDeactivateFindOvsCorsa" requires="^"
+ exec="onos-find-driver ${OC1} ovs-corsa ovsInactive" env="!"/>
+ <step name="DriversTest.AfterDeactivateFindDefault" requires="^"
+ exec="onos-find-driver ${OC1} default defaultInactive" env="!"/>
+
+ <!-- Reactivate all drivers -->
+ <step name="DriversTest.ActivateDriversApp" requires="^"
+ exec="onos ${OCI} onos:app activate org.onosproject.drivers"/>
+
+ <!-- Check reactivated state of drivers -->
+ <step name="DriversTest.ReactivatedFindOvsCorsa" requires="^"
+ exec="onos-find-driver ${OC1} ovs-corsa ovs" />
+ <step name="DriversTest.ReactivatedCheckOvsCorsa" requires="^"
+ exec="test '${ovsDriver}' != ''"/>
+ <step name="DriversTest.ReactivatedDefault" requires="^"
+ exec="onos-find-driver ${OC1} default default" />
+ <step name="DriversTest.ReactivatedCheckDefault" requires="^"
+ exec="test '${defaultDriver}' != ''"/>
+
+ </group>
+</scenario>
diff --git a/tools/test/scenarios/smoke.xml b/tools/test/scenarios/smoke.xml
index 2344972..a7347d3 100644
--- a/tools/test/scenarios/smoke.xml
+++ b/tools/test/scenarios/smoke.xml
@@ -26,6 +26,9 @@
<import file="${ONOS_SCENARIOS}/archetypes.xml"/>
<dependency name="Archetypes" requires="Setup"/>
+ <import file="${ONOS_SCENARIOS}/drivers-test.xml"/>
+ <dependency name="Drivers-Test" requires="Setup,Net-Smoke,Archetypes"/>
+
<import file="${ONOS_SCENARIOS}/wrapup.xml"/>
<dependency name="Wrapup" requires="~Archetypes,~Setup,~Net-Smoke"/>
</scenario>