<!--
  ~ Copyright 2015-present 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-smoke" description="Basic network functionality smoke test">
    <group name="Net-Smoke">
        <import file="${ONOS_SCENARIOS}/net-setup.xml"/>

        <import file="${ONOS_SCENARIOS}/net-pingall.xml" namespace="Reactive-Forwarding"/>
        <dependency name="Reactive-Forwarding.Net-Pingall" requires="Net-Setup"/>

        <import file="${ONOS_SCENARIOS}/net-link-down-up.xml" namespace="Reactive-Forwarding"/>
        <dependency name="Reactive-Forwarding.Net-Link-Down-Up" requires="Net-Setup,~Reactive-Forwarding.Net-Pingall"/>

        <import file="${ONOS_SCENARIOS}/net-host-intent.xml"/>
        <dependency name="Host-Intent-Connectivity" requires="Net-Setup,~Reactive-Forwarding.Net-Link-Down-Up"/>

        <import file="${ONOS_SCENARIOS}/net-point-intent.xml"/>
        <dependency name="P2P-Intent-Connectivity" requires="Net-Setup,~Reactive-Forwarding.Net-Link-Down-Up,Host-Intent-Connectivity"/>

        <import file="${ONOS_SCENARIOS}/net-single-to-multi-intent.xml"/>
        <dependency name="S2M-Intent-Connectivity"
                    requires="Net-Setup,~Reactive-Forwarding.Net-Link-Down-Up,Host-Intent-Connectivity,P2P-Intent-Connectivity"/>

        <import file="${ONOS_SCENARIOS}/net-multi-to-single-intent.xml"/>
        <dependency name="M2S-Intent-Connectivity"
                    requires="S2M-Intent-Connectivity"/>
        
        <import file="${ONOS_SCENARIOS}/net-rest.xml"/>
        <dependency name="Net-REST" requires="Net-Setup,P2P-Intent-Connectivity,M2S-Intent-Connectivity"/>

        <import file="${ONOS_SCENARIOS}/net-create-flows.xml"/>
        <dependency name="Net-Create-Flows" requires="Net-Setup,P2P-Intent-Connectivity,Net-REST"/>

        <import file="${ONOS_SCENARIOS}/net-flow-objectives.xml"/>
        <dependency name="Net-Flow-Objectives" requires="Net-Setup,P2P-Intent-Connectivity,Net-REST,Net-Create-Flows"/>

        <import file="${ONOS_SCENARIOS}/net-topo.xml"/>
        <dependency name="Net-Topo" requires="Net-Setup,Net-Create-Flows,Net-Flow-Objectives"/>

        <import file="${ONOS_SCENARIOS}/net-teardown.xml"/>
        <dependency name="Net-Teardown" requires="~Host-Intent-Connectivity,
                                                  ~P2P-Intent-Connectivity,
                                                  ~Net-REST,
                                                  ~Net-Create-Flows,
                                                  ~Net-Topo"/>

        <parallel var="${OC#}">
            <step name="Net-Smoke-Check-Logs-${#}" requires="~Net-Teardown"
                  exec="onos-check-logs ${OC#}"/>
        </parallel>
    </group>
</scenario>
