Thomas Vachuska
Committed by Gerrit Code Review

Improving stw and adding ability to clean-up mininet properly between runs.

Change-Id: Idb163bfa0cfd13b0ed7b9e4715ca7a2c0ffe69f6
...@@ -12,15 +12,16 @@ function _ogroup-opts () { ...@@ -12,15 +12,16 @@ function _ogroup-opts () {
12 complete -F _ogroup-opts onos-group 12 complete -F _ogroup-opts onos-group
13 13
14 14
15 -# Tab completion settings for stc 15 +# Tab completion settings for stc & stw
16 function _stc-opts () { 16 function _stc-opts () {
17 local cur=${COMP_WORDS[COMP_CWORD]} 17 local cur=${COMP_WORDS[COMP_CWORD]}
18 - if [ $COMP_CWORD -eq 1 ]; then 18 + if [ $COMP_CWORD -ge 1 ]; then
19 COMPREPLY=( $( compgen -W "$(cd $ONOS_ROOT/tools/test/scenarios && ls -1 | sed 's/.xml//g')" -- $cur ) ) 19 COMPREPLY=( $( compgen -W "$(cd $ONOS_ROOT/tools/test/scenarios && ls -1 | sed 's/.xml//g')" -- $cur ) )
20 fi 20 fi
21 } 21 }
22 22
23 complete -F _stc-opts stc 23 complete -F _stc-opts stc
24 +complete -F _stc-opts stw
24 25
25 26
26 # Tab completion settings for stl 27 # Tab completion settings for stl
......
...@@ -66,4 +66,8 @@ stop) ...@@ -66,4 +66,8 @@ stop)
66 $mininet -X "stuff \"^C\\n\"" 2>/dev/null && \ 66 $mininet -X "stuff \"^C\\n\"" 2>/dev/null && \
67 $mininet -X "stuff \"exit\\n\"" 2>/dev/null 67 $mininet -X "stuff \"exit\\n\"" 2>/dev/null
68 ;; 68 ;;
69 +cleanup)
70 + ssh -t -t $remote sudo mn -c
71 + ssh -t -t $remote "ps -ef | grep 'tail -n1 screenlog.0' | grep -v grep | cut -c10-15 | xargs kill -9"
72 + ;;
69 esac 73 esac
......
...@@ -3,13 +3,40 @@ ...@@ -3,13 +3,40 @@
3 # Loops the System Test Coordinator invocations while success/until failure. 3 # Loops the System Test Coordinator invocations while success/until failure.
4 #------------------------------------------------------------------------------- 4 #-------------------------------------------------------------------------------
5 5
6 +count=0
7 +unset doSetup doTeardown
8 +
9 +# Scan arguments for user/password or other options...
10 +while getopts c:st o; do
11 + case "$o" in
12 + c) count=$OPTARG;;
13 + s) doSetup=true;;
14 + t) toTeardown=true;;
15 + esac
16 +done
17 +let OPC=$OPTIND-1
18 +shift $OPC
19 +
20 +if [ -n "$doSetup" ]; then
21 + printf "Setting up...\n"
22 + stc setup || exit 1
23 +fi
24 +
6 let run=1 25 let run=1
7 -while true; do 26 +while [ $count -le 0 -o $run -le $count ]; do
8 printf "\033]0;%s\007" "STC Run #$run" 27 printf "\033]0;%s\007" "STC Run #$run"
9 printf "Starting run %d...\n" $run 28 printf "Starting run %d...\n" $run
10 - stc "$@" 29 + for scenario in "${@:-smoke}"; do
30 + printf "Running scenario %s...\n" $scenario
31 + stc $scenario
32 + done
11 status=$? 33 status=$?
12 printf "Finished run %d...\n" $run 34 printf "Finished run %d...\n" $run
13 - [ $status -ne 0 ] && break 35 + [ $status -ne 0 ] && exit $status
14 let run=run+1 36 let run=run+1
15 done 37 done
38 +
39 +if [ -n "$doTeardown" ]; then
40 + printf "Tearing down...\n"
41 + stc teardown || exit 1
42 +fi
......
...@@ -19,6 +19,7 @@ ...@@ -19,6 +19,7 @@
19 <step name="Push-Topos" exec="onos-push-topos ${OCN}"/> 19 <step name="Push-Topos" exec="onos-push-topos ${OCN}"/>
20 20
21 <step name="Stop-Mininet-If-Needed" env="~" exec="onos-mininet stop"/> 21 <step name="Stop-Mininet-If-Needed" env="~" exec="onos-mininet stop"/>
22 + <step name="Clean-Mininet-If-Needed" env="~" exec="onos-mininet cleanup" requires="^"/>
22 <step name="Wipe-Out-Data-Before" exec="onos-wipe-out" requires="^"/> 23 <step name="Wipe-Out-Data-Before" exec="onos-wipe-out" requires="^"/>
23 24
24 <step name="Initial-Summary-Check" requires="~Wipe-Out-Data-Before" 25 <step name="Initial-Summary-Check" requires="~Wipe-Out-Data-Before"
......
...@@ -16,6 +16,7 @@ ...@@ -16,6 +16,7 @@
16 <scenario name="net-setup" description="Network teardown steps"> 16 <scenario name="net-setup" description="Network teardown steps">
17 <group name="Net-Teardown"> 17 <group name="Net-Teardown">
18 <step name="Stop-Mininet" exec="onos-mininet stop"/> 18 <step name="Stop-Mininet" exec="onos-mininet stop"/>
19 + <step name="Cleanup-Mininet" exec="onos-mininet cleanup" requires="~Stop-Mininet"/>
19 <XXXstep name="Wipe-Out-Data-After" requires="~Stop-Mininet" exec="onos-wipe-out"/> 20 <XXXstep name="Wipe-Out-Data-After" requires="~Stop-Mininet" exec="onos-wipe-out"/>
20 </group> 21 </group>
21 </scenario> 22 </scenario>
...\ No newline at end of file ...\ No newline at end of file
......
1 +<!--
2 + ~ Copyright 2016 Open Networking Laboratory
3 + ~
4 + ~ Licensed under the Apache License, Version 2.0 (the "License");
5 + ~ you may not use this file except in compliance with the License.
6 + ~ You may obtain a copy of the License at
7 + ~
8 + ~ http://www.apache.org/licenses/LICENSE-2.0
9 + ~
10 + ~ Unless required by applicable law or agreed to in writing, software
11 + ~ distributed under the License is distributed on an "AS IS" BASIS,
12 + ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13 + ~ See the License for the specific language governing permissions and
14 + ~ limitations under the License.
15 + -->
16 +<scenario name="smoke-internal" description="Internals of ONOS smoke test">
17 + <import file="${ONOS_SCENARIOS}/net-smoke.xml"/>
18 +
19 + <import file="${ONOS_SCENARIOS}/archetypes.xml"/>
20 + <dependency name="Archetypes" requires="~Net-Smoke"/>
21 +
22 + <import file="${ONOS_SCENARIOS}/drivers-test.xml"/>
23 + <dependency name="Drivers-Test" requires="~Net-Smoke,~Archetypes"/>
24 +
25 + <import file="${ONOS_SCENARIOS}/meta-apps-test.xml"/>
26 + <dependency name="Meta-App" requires="~Net-Smoke,~Drivers-Test"/>
27 +
28 + <import file="${ONOS_SCENARIOS}/netcfg.xml"/>
29 + <dependency name="Netcfg" requires="~Meta-App"/>
30 +</scenario>
...@@ -20,21 +20,13 @@ ...@@ -20,21 +20,13 @@
20 <import file="${ONOS_SCENARIOS}/setup.xml"/> 20 <import file="${ONOS_SCENARIOS}/setup.xml"/>
21 <dependency name="Setup" requires="Prerequisites,Net-Prerequisites"/> 21 <dependency name="Setup" requires="Prerequisites,Net-Prerequisites"/>
22 22
23 - <import file="${ONOS_SCENARIOS}/net-smoke.xml"/> 23 + <import file="${ONOS_SCENARIOS}/smoke-internal.xml"/>
24 <dependency name="Net-Smoke" requires="Setup"/> 24 <dependency name="Net-Smoke" requires="Setup"/>
25 - 25 + <dependency name="Archetypes" requires="Setup"/>
26 - <import file="${ONOS_SCENARIOS}/archetypes.xml"/> 26 + <dependency name="Drivers-Test" requires="Setup"/>
27 - <dependency name="Archetypes" requires="Setup,~Net-Smoke"/> 27 + <dependency name="Meta-App" requires="Setup"/>
28 - 28 + <dependency name="Netcfg" requires="Setup"/>
29 - <import file="${ONOS_SCENARIOS}/drivers-test.xml"/>
30 - <dependency name="Drivers-Test" requires="Setup,~Net-Smoke,~Archetypes"/>
31 -
32 - <import file="${ONOS_SCENARIOS}/meta-apps-test.xml"/>
33 - <dependency name="Meta-App" requires="Setup,~Net-Smoke,~Drivers-Test"/>
34 -
35 - <import file="${ONOS_SCENARIOS}/netcfg.xml"/>
36 - <dependency name="Netcfg" requires="Setup,~Meta-App"/>
37 29
38 <import file="${ONOS_SCENARIOS}/wrapup.xml"/> 30 <import file="${ONOS_SCENARIOS}/wrapup.xml"/>
39 - <dependency name="Wrapup" requires="~Archetypes,~Setup,~Net-Smoke,~Drivers-Test,~Meta-App,~Netcfg"/> 31 + <dependency name="Wrapup" requires="~Setup,~Net-Smoke,~Archetypes,~Drivers-Test,~Meta-App,~Netcfg"/>
40 </scenario> 32 </scenario>
......