<!--
  ~ Copyright 2015 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="net-pingall" description="Network pingall test">
    <!-- TODO: parametrize this via recipes -->
    <group name="Net-Pingall">
        <step name="Install-Apps"
              exec="onos ${OC1} app activate org.onosproject.openflow org.onosproject.proxyarp org.onosproject.fwd"/>
        <step name="Check-Apps" requires="^"
              exec="onos-check-apps ${OC1} drivers,openflow,proxyarp,fwd includes"/>

        <!-- TODO: take this out when initial pingall sweep is 100% -->
        <step name="Initial-Ping-All" requires="Check-Apps"
              exec="onos-mininet sendAndExpect py net.pingAll(1) --expect received"/>

        <step name="Ping-All-And-Verify" requires="Check-Apps,Initial-Ping-All"
              exec="onos-mininet sendAndExpect py net.pingAll(1) --expect 600/600 received"/>

        <step name="Check-Summary-For-Hosts" requires="~Ping-All-And-Verify"
              exec="onos-check-summary ${OC1} [0-9]* 25 140 25"/>

        <step name="Config-Topo" requires="~Check-Summary-For-Hosts"
              exec="onos-topo-cfg ${OC1} ${ONOS_ROOT}/tools/test/topos/attmpls.json"/>
    </group>
</scenario>
