#1 initial commit of tests from upstreamfirst project
Merged 2 years ago by psutter. Opened 2 years ago by mgahagan.
rpms/ mgahagan/iproute master  into  master

@@ -0,0 +1,64 @@ 

+ # ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

+ #

+ #   Makefile of /CoreOS/iproute/Sanity/bridge-utility

+ #   Description: Test basic bridge funcionality

+ #   Author: David Spurek <dspurek@redhat.com>

+ #

+ # ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

+ #

+ #   Copyright (c) 2013 Red Hat, Inc. All rights reserved.

+ #

+ #   This copyrighted material is made available to anyone wishing

+ #   to use, modify, copy, or redistribute it subject to the terms

+ #   and conditions of the GNU General Public License version 2.

+ #

+ #   This program is distributed in the hope that it will be

+ #   useful, but WITHOUT ANY WARRANTY; without even the implied

+ #   warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR

+ #   PURPOSE. See the GNU General Public License for more details.

+ #

+ #   You should have received a copy of the GNU General Public

+ #   License along with this program; if not, write to the Free

+ #   Software Foundation, Inc., 51 Franklin Street, Fifth Floor,

+ #   Boston, MA 02110-1301, USA.

+ #

+ # ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

+ 

+ export TEST=/CoreOS/iproute/Sanity/bridge-utility

+ export TESTVERSION=1.0

+ 

+ BUILT_FILES=

+ 

+ FILES=$(METADATA) runtest.sh Makefile PURPOSE

+ 

+ .PHONY: all install download clean

+ 

+ run: $(FILES) build

+ 	./runtest.sh

+ 

+ build: $(BUILT_FILES)

+ 	test -x runtest.sh || chmod a+x runtest.sh

+ 

+ clean:

+ 	rm -f *~ $(BUILT_FILES)

+ 

+ 

+ include /usr/share/rhts/lib/rhts-make.include

+ 

+ $(METADATA): Makefile

+ 	@echo "Owner:           David Spurek <dspurek@redhat.com>" > $(METADATA)

+ 	@echo "Name:            $(TEST)" >> $(METADATA)

+ 	@echo "TestVersion:     $(TESTVERSION)" >> $(METADATA)

+ 	@echo "Path:            $(TEST_DIR)" >> $(METADATA)

+ 	@echo "Description:     Test basic bridge funcionality" >> $(METADATA)

+ 	@echo "Type:            Sanity" >> $(METADATA)

+ 	@echo "TestTime:        15m" >> $(METADATA)

+ 	@echo "RunFor:          iproute" >> $(METADATA)

+ 	@echo "Requires:        iproute" >> $(METADATA)

+ 	@echo "Requires:        bridge-utils" >> $(METADATA)

+ 	@echo "Priority:        Normal" >> $(METADATA)

+ 	@echo "License:         GPLv2" >> $(METADATA)

+ 	@echo "Confidential:    no" >> $(METADATA)

+ 	@echo "Destructive:     no" >> $(METADATA)

+ 

+ 	rhts-lint $(METADATA)

@@ -0,0 +1,3 @@ 

+ PURPOSE of /CoreOS/iproute/Sanity/bridge-utility

+ Description: Test basic bridge funcionality

+ Author: David Spurek <dspurek@redhat.com>

@@ -0,0 +1,268 @@ 

+ #!/bin/bash

+ # vim: dict=/usr/share/beakerlib/dictionary.vim cpt=.,w,b,u,t,i,k

+ # ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

+ #

+ #   runtest.sh of /CoreOS/iproute/Sanity/bridge-utility

+ #   Description: Test basic bridge funcionality

+ #   Author: David Spurek <dspurek@redhat.com>

+ #

+ # ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

+ #

+ #   Copyright (c) 2013 Red Hat, Inc. All rights reserved.

+ #

+ #   This copyrighted material is made available to anyone wishing

+ #   to use, modify, copy, or redistribute it subject to the terms

+ #   and conditions of the GNU General Public License version 2.

+ #

+ #   This program is distributed in the hope that it will be

+ #   useful, but WITHOUT ANY WARRANTY; without even the implied

+ #   warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR

+ #   PURPOSE. See the GNU General Public License for more details.

+ #

+ #   You should have received a copy of the GNU General Public

+ #   License along with this program; if not, write to the Free

+ #   Software Foundation, Inc., 51 Franklin Street, Fifth Floor,

+ #   Boston, MA 02110-1301, USA.

+ #

+ # ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

+ 

+ # Include Beaker environment

+ . /usr/bin/rhts-environment.sh || exit 1

+ . /usr/share/beakerlib/beakerlib.sh || exit 1

+ 

+ PACKAGE="iproute"

+ 

+ PACKAGES="$PACKAGE"

+ rlIsRHEL 6 && PACKAGES=( ${PACKAGES[@]} "bridge-utils" )

+ vxlan_name="testvxlan"

+ bridge_name="testbridge"

+ lsmod | grep dummy

+ dummy_loaded=$?

+ 

+ rlJournalStart

+     rlPhaseStartSetup

+         # Check reqiured packages.

+         for P in ${PACKAGES[@]}; do rlCheckRpm $P || rlDie "Package $P is missing"; done

+ 

+         rlRun "TmpDir=\$(mktemp -d)" 0 "Creating tmp directory"

+         rlRun "pushd $TmpDir"

+         no_dummy=0

+         if [ $dummy_loaded -eq 1 ] ; then

+                 # dummy module doesn't loaded before the test

+                 modprobe dummy numdummies=2

+         else

+                 # dummy module loaded before the test, backup number of loaded dummy devices (nmdumies parameter), it is doesn't show under /sys/module/dummy/parameters

+                 dummies_count=`ip a | grep dummy | tail -n 1 | sed -r 's/.*dummy([0-9]+).*/\1/'`

+                 if [ -z $dummies_count] ; then

+                         # dummy module is loaded but no dummy device exists

+                         no_dummy=1

+                 else

+                         # get correct count, dummy0 is the first

+                         let "dummies_count=$dummies_count+1"

+                 fi

+                 rmmod dummy

+                 modprobe dummy numdummies=2

+         fi

+         rlRun "ip addr flush dev dummy0"

+         rlRun "ip link set dummy0 up"

+         rlRun "ip addr flush dev dummy1"

+         rlRun "ip link set dummy1 up"

+         rlRun "ip addr add 127.0.0.13/24 dev dummy0" 0 "Setting IPv4 address to 

+ dummy0 interface"

+         rlRun "ip addr add 127.0.0.14/24 dev dummy1" 0 "Setting IPv4 address to 

+ dummy1 interface"

+     rlPhaseEnd

+ 

+     rlPhaseStartTest "Test bridge fdb basic funcionality with vxlan device"

+         rlRun "ip link add $vxlan_name type vxlan id 10 group 239.0.0.10 ttl 4 dev dummy0" 0 "add vxlan interface"

+         rlRun "ip addr add 192.168.1.1/24 broadcast 192.168.1.255 dev $vxlan_name" 0 "setting address to vxlan interface"

+         rlRun "ip -d link show $vxlan_name" 0 "show details about vxlan device" 

+ 

+         vxlan_ether_address=`ip -d link show $vxlan_name | grep link/ether | awk '{print $2}'`

+         echo "ethernet address of vxlan device is: $vxlan_ether_address"

+ 

+         # add new entry to bridge fdb database (device must by type vxlan)

+         rlRun "bridge fdb add $vxlan_ether_address dst 192.19.0.2 dev $vxlan_name"

+ 

+         # check if entry was successfuly added

+         bridge fdb show dev $vxlan_name &> bridge_show.out

+         cat bridge_show.out

+         rlAssertGrep "$vxlan_ether_address dst 192.19.0.2" bridge_show.out "-i"

+ 

+         # try replace entry in bridge fdb database

+         rlRun "bridge fdb replace $vxlan_ether_address dst 192.19.0.3 dev $vxlan_name"

+ 

+         # check if entry was successfuly changed

+         bridge fdb show dev $vxlan_name &> bridge_show.out

+         cat bridge_show.out

+         rlAssertGrep "$vxlan_ether_address dst 192.19.0.3" bridge_show.out "-i"

+ 

+         rlRun "bridge fdb del $vxlan_ether_address dev $vxlan_name"

+ 

+         # check if entry was successfuly deleted

+         # 'default' entry added by ip link command should be still listed

+         bridge fdb show dev $vxlan_name &> bridge_show.out

+         cat bridge_show.out

+         rlAssertNotGrep "$vxlan_ether_address dst 192.19.0.2" bridge_show.out "-i"

+         rlAssertGrep "dst 239.0.0.10 via dummy0" bridge_show.out "-i"

+ 

+         # add new entry to bridge fdb database with port,vni and via options

+         rlRun "bridge fdb add $vxlan_ether_address dst 192.19.0.2 dev $vxlan_name port 10000 vni 100 via dummy0"

+         # check if entry was successfuly added

+         bridge fdb show dev $vxlan_name &> bridge_show.out

+         cat bridge_show.out

+         rlAssertGrep "$vxlan_ether_address dst 192.19.0.2 port 10000 vni 100 via dummy0" bridge_show.out "-i"

+ 

+         rlRun "bridge fdb del $vxlan_ether_address dev $vxlan_name"

+ 

+         # add new entry to bridge fdb database with self option

+         rlRun "bridge fdb add $vxlan_ether_address dst 192.19.0.2 dev $vxlan_name self"

+         # check if entry was successfuly added

+         bridge fdb show dev $vxlan_name &> bridge_show.out

+         cat bridge_show.out

+         rlAssertGrep "$vxlan_ether_address dst 192.19.0.2 self" bridge_show.out "-i"

+ 

+         # replace entry in bridge fdb database with temp option

+         rlRun "bridge fdb replace $vxlan_ether_address dst 192.19.0.2 dev $vxlan_name temp"

+         # check if entry was successfuly changed

+         bridge fdb show dev $vxlan_name &> bridge_show.out

+         cat bridge_show.out

+         rlAssertGrep "$vxlan_ether_address dst 192.19.0.2 self static" bridge_show.out "-i"

+ 

+         # replace entry in bridge fdb database with local option

+         rlRun "bridge fdb replace $vxlan_ether_address dst 192.19.0.2 dev $vxlan_name local"

+         # check if entry was successfuly changed

+         bridge fdb show dev $vxlan_name &> bridge_show.out

+         cat bridge_show.out

+         rlAssertGrep "$vxlan_ether_address dst 192.19.0.2 self permanent" bridge_show.out "-i"

+ 

+         # replace entry in bridge fdb database with router option

+         rlRun "bridge fdb replace $vxlan_ether_address dst 192.19.0.2 dev $vxlan_name router"

+         # check if entry was successfuly changed

+         bridge fdb show dev $vxlan_name &> bridge_show.out

+         cat bridge_show.out

+         rlAssertGrep "$vxlan_ether_address dst 192.19.0.2 self router permanent" bridge_show.out "-i"

+ 

+         rlRun "bridge fdb del $vxlan_ether_address dev $vxlan_name"

+         rlRun "ip link del $vxlan_name" 0

+     rlPhaseEnd

+ 

+     rlPhaseStartTest "Test bridge fdb basic funcionality with bridge device, test bridge link set command"

+         # on rhels < 7 must be bridge device added with brctl (add type bridge is not supported)

+         rlIsRHEL '>=7' && rlRun "ip link add $bridge_name type bridge" 0 || rlRun "brctl addbr $bridge_name" 0

+ 

+         if rlIsRHEL '>=7'; then

+                 rlRun "ip link set dummy0 master $bridge_name" 0 "Add dummy interface to bridge"

+                 rlRun "bridge link show dev dummy0"

+                 # test bridge link set, command is not supported on rhel < 7 (->ndo_bridge_setlink() is not in our kernel.)

+ 

+                 rlRun "bridge link set dev dummy0 cost 10"

+                 rlRun "bridge link show dev dummy0 &> bridge_show.out" 0

+                 cat bridge_show.out

+                 rlAssertGrep "dummy0.*cost 10 $" bridge_show.out "-i"

+ 

+                 # add new entry to bridge fdb database with self option

+                 rlRun "bridge fdb add 00:1b:21:55:23:61 dev dummy0 self"

+                 bridge fdb show dev dummy0 &> bridge_show.out

+                 cat bridge_show.out

+                 rlAssertGrep "00:1b:21:55:23:61 self" bridge_show.out "-i"

+                 # add new entry to bridge fdb database with master option

+                 rlRun "bridge fdb add 00:1b:21:55:23:62 dev dummy0 master"

+                 bridge fdb show dev dummy0 &> bridge_show.out

+                 cat bridge_show.out

+                 rlAssertGrep "00:1b:21:55:23:62 vlan 1" bridge_show.out "-i"

+ 

+                 # add new entry to bridge fdb database with master and self options (entries for both should be added)

+                 rlRun "bridge fdb add 00:1b:21:55:23:63 dev dummy0 self master"

+                 bridge fdb show dev dummy0 &> bridge_show.out

+                 cat bridge_show.out

+                 rlAssertGrep "00:1b:21:55:23:63 self" bridge_show.out "-i"

+                 rlAssertGrep "00:1b:21:55:23:63 vlan 1" bridge_show.out "-i"

+ 

+         else

+                 rlRun "brctl addif $bridge_name dummy0" 0 "Add dummy interface to bridge"

+                 rlRun "brctl show $bridge_name"

+         fi

+         

+         rlIsRHEL '>=7' && rlRun "ip link set dummy0 nomaster" 0 "Remove dummy vlan interface from bridge" || rlRun "brctl delif $bridge_name dummy0" 0 "Remove dummy interface from bridge"

+ 

+         rlIsRHEL '>=7' && rlRun "ip link del $bridge_name" 0 || rlRun "brctl delbr $bridge_name" 0

+     rlPhaseEnd

+ 

+     rlPhaseStartTest "Test bridge vlan basic funcionality"

+         # on rhels < 7 must be bridge device added with brctl (add type bridge is not supported)

+         rlIsRHEL '>=7' && rlRun "ip link add $bridge_name type bridge" 0 || rlRun "brctl addbr $bridge_name" 0

+ 

+         rlRun "ip link add link dummy0 name dummy0.10 type vlan id 10"

+         if rlIsRHEL '>=7' ; then

+                 rlRun "ip link set dummy0.10 master $bridge_name" 0 "Add dummy vlan interface to bridge"

+                 rlRun "bridge link show dev dummy0.10"

+         else

+                 rlRun "brctl addif $bridge_name dummy0.10" 0 "Add dummy vlan interface to bridge"

+                 rlRun "brctl show $bridge_name"

+         fi

+         # bridge vlan is not supported on rhel < 6.8

+         if rlIsRHEL '>=7' || rlIsRHEL '>=6.8' || rlIsFedora; then

+             rlRun "bridge vlan add dev dummy0.10 vid 5" 0

+         else

+             rlRun "bridge vlan add dev dummy0.10 vid 5" 2

+         fi

+ 

+         # test correct funcionality only on rhel 7

+         if rlIsRHEL '>=7' ; then

+                 bridge vlan &> bridge_vlan.out

+                 cat bridge_vlan.out

+                 #rlAssertGrep "dummy0.10.*5" bridge_vlan.out "-i"

+                 #rlAssertGrep "dummy0.10.*10" bridge_vlan.out "-i"

+                 rlRun "grep -A 2 'dummy0.10' bridge_vlan.out | grep '5'"

+ 

+                 rlRun "bridge vlan del dev dummy0.10 vid 5"

+                 bridge vlan &> bridge_vlan.out

+                 cat bridge_vlan.out

+                 #rlAssertNotGrep "dummy0.10" bridge_vlan.out "-i"

+                 rlRun "grep -A 2 'dummy0.10' bridge_vlan.out | grep '5'" 1

+         fi

+         rlIsRHEL '>=7' && rlRun "ip link set dummy0.10 nomaster" 0 "Remove dummy vlan interface from bridge" || rlRun "brctl delif $bridge_name dummy0.10" 0 "Remove dummy vlan interface from bridge"

+ 

+         rlRun "ip link del dev dummy0.10"

+ 

+         rlIsRHEL '>=7' && rlRun "ip link del $bridge_name" 0 || rlRun "brctl delbr $bridge_name" 0

+     rlPhaseEnd

+ 

+     rlPhaseStartTest "Test bridge mdb basic funcionality"

+         rlRun "bridge mdb show" 0

+     rlPhaseEnd

+ 

+     if rlIsRHEL '>=7'; then

+         rlPhaseStartTest

+             rlRun "ip link add test_bridge type bridge"

+             rlRun "bridge fdb show | grep 'dev test_bridge' | grep 'master test_bridge'"

+             rlRun "ip link del test_bridge"

+         rlPhaseEnd

+     fi

+ 

+     rlPhaseStartCleanup

+         rlRun "ip route flush dev dummy0"

+         rlRun "ip link set dummy0 down"

+         rlRun "ip addr flush dev dummy0"

+         rlRun "ip route flush dev dummy1"

+         rlRun "ip link set dummy1 down"

+         rlRun "ip addr flush dev dummy1"

+         if [ $dummy_loaded -eq 1 ] ; then

+                 rmmod dummy

+         else

+                 rmmod dummy

+                 if [ $no_dummy -eq 1 ] ; then

+                         # load dummy module and delete dummy0 with ip link

+                         modprobe dummy

+                          rlIsRHEL '>=7' && rlRun "ip link del dummy0"

+                 else

+                         modprobe dummy numdummies=$dummies_count

+                 fi

+         fi

+         rlRun "service network restart" 0,1 "Restarting network, just for sure"

+         rlRun "popd"

+         rlRun "rm -r $TmpDir" 0 "Removing tmp directory"

+     rlPhaseEnd

+ rlJournalPrintText

+ rlJournalEnd

@@ -0,0 +1,63 @@ 

+ # ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

+ #

+ #   Makefile of /CoreOS/iproute/Sanity/ip-neigh-sanity-test

+ #   Description: Test basic ip neigh functionality

+ #   Author: Jaroslav Aster <jaster@redhat.com>

+ #

+ # ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

+ #

+ #   Copyright (c) 2014 Red Hat, Inc. All rights reserved.

+ #

+ #   This copyrighted material is made available to anyone wishing

+ #   to use, modify, copy, or redistribute it subject to the terms

+ #   and conditions of the GNU General Public License version 2.

+ #

+ #   This program is distributed in the hope that it will be

+ #   useful, but WITHOUT ANY WARRANTY; without even the implied

+ #   warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR

+ #   PURPOSE. See the GNU General Public License for more details.

+ #

+ #   You should have received a copy of the GNU General Public

+ #   License along with this program; if not, write to the Free

+ #   Software Foundation, Inc., 51 Franklin Street, Fifth Floor,

+ #   Boston, MA 02110-1301, USA.

+ #

+ # ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

+ 

+ export TEST=/CoreOS/iproute/Sanity/ip-neigh-sanity-test

+ export TESTVERSION=1.0

+ 

+ BUILT_FILES=

+ 

+ FILES=$(METADATA) runtest.sh Makefile PURPOSE

+ 

+ .PHONY: all install download clean

+ 

+ run: $(FILES) build

+ 	./runtest.sh

+ 

+ build: $(BUILT_FILES)

+ 	test -x runtest.sh || chmod a+x runtest.sh

+ 

+ clean:

+ 	rm -f *~ $(BUILT_FILES)

+ 

+ 

+ include /usr/share/rhts/lib/rhts-make.include

+ 

+ $(METADATA): Makefile

+ 	@echo "Owner:           Jaroslav Aster <jaster@redhat.com>" > $(METADATA)

+ 	@echo "Name:            $(TEST)" >> $(METADATA)

+ 	@echo "TestVersion:     $(TESTVERSION)" >> $(METADATA)

+ 	@echo "Path:            $(TEST_DIR)" >> $(METADATA)

+ 	@echo "Description:     Test basic ip neigh funcionality" >> $(METADATA)

+ 	@echo "Type:            Sanity" >> $(METADATA)

+ 	@echo "TestTime:        15m" >> $(METADATA)

+ 	@echo "RunFor:          iproute" >> $(METADATA)

+ 	@echo "Requires:        iproute" >> $(METADATA)

+ 	@echo "Priority:        Normal" >> $(METADATA)

+ 	@echo "License:         GPLv2" >> $(METADATA)

+ 	@echo "Confidential:    no" >> $(METADATA)

+ 	@echo "Destructive:     no" >> $(METADATA)

+ 

+ 	rhts-lint $(METADATA)

@@ -0,0 +1,3 @@ 

+ PURPOSE of /CoreOS/iproute/Sanity/ip-neigh-sanity-test

+ Description: Test basic ip neigh funcionality

+ Author: Jaroslav Aster <jaster@redhat.com>

@@ -0,0 +1,234 @@ 

+ #!/bin/bash

+ # vim: dict=/usr/share/beakerlib/dictionary.vim cpt=.,w,b,u,t,i,k

+ # ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

+ #

+ #   runtest.sh of /CoreOS/iproute/Sanity/ip-neigh-sanity-test

+ #   Description: Test basic ip neigh funcionality

+ #   Author: Jaroslav Aster <jaster@redhat.com>

+ #

+ # ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

+ #

+ #   Copyright (c) 2014 Red Hat, Inc. All rights reserved.

+ #

+ #   This copyrighted material is made available to anyone wishing

+ #   to use, modify, copy, or redistribute it subject to the terms

+ #   and conditions of the GNU General Public License version 2.

+ #

+ #   This program is distributed in the hope that it will be

+ #   useful, but WITHOUT ANY WARRANTY; without even the implied

+ #   warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR

+ #   PURPOSE. See the GNU General Public License for more details.

+ #

+ #   You should have received a copy of the GNU General Public

+ #   License along with this program; if not, write to the Free

+ #   Software Foundation, Inc., 51 Franklin Street, Fifth Floor,

+ #   Boston, MA 02110-1301, USA.

+ #

+ # ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

+ 

+ # Include Beaker environment

+ . /usr/bin/rhts-environment.sh || exit 1

+ . /usr/share/beakerlib/beakerlib.sh || exit 1

+ 

+ PACKAGE="iproute"

+ TEST_IFACE="test-iface"

+ TEST_IP4_PREFIX="192.168.100"

+ TEST_IP6_PREFIX="2000::"

+ TEST_MAC_PREFIX="00:c0:7b:7d:00"

+ rlIsRHEL '>=7' && MAN_PAGE="ip-neighbour" || MAN_PAGE="ip"

+ MESSAGES="/var/log/messages"

+ TMP_MESSAGES="$(mktemp)"

+ 

+ 

+ create_dummy_iface()

+ {

+     rlRun "ip link add name ${TEST_IFACE} type dummy" 0 "Creating dummy interface: '${TEST_IFACE}'."

+ }

+ 

+ delete_dummy_iface()

+ {

+     rlRun "ip link del ${TEST_IFACE}" 0 "Removing dummy interface: '${TEST_IFACE}'."

+     rlRun "rmmod dummy" 0,1 "Removing dummy module."

+ }

+ 

+ 

+ rlJournalStart

+     rlPhaseStartSetup

+         rlCheckRpm "$PACKAGE"

+         create_dummy_iface

+     rlPhaseEnd

+ 

+     if rlIsRHEL '>=7'; then

+         rlPhaseStartTest

+             for word in add del change replace show flush all proxy to dev nud unused permanent reachable probe failed incomplete stale delay noarp none; do

+ 		if ! { [ "$word" = "unused" ] || [ "$word" = "all" ]; }; then

+                     rlRun "ip n help 2>&1 | grep -e '[^[:alnum:]]${word}[^[:alnum:]]'" 0 "Checking there is '${word}' in ip neighbour help."

+ 		fi

+                 rlRun "man ${MAN_PAGE} | col -b | grep -e '[^[:alnum:]]${word}[^[:alnum:]]'" 0 "Checking there is '${word}' in ${MAN_PAGE} man page."

+             done

+         rlPhaseEnd

+     fi

+ 

+     rlPhaseStartTest "Functional Test"

+         rlLogInfo "IPv4"

+         rlRun "ip neigh add ${TEST_IP4_PREFIX}.1 lladdr ${TEST_MAC_PREFIX}:c6 dev ${TEST_IFACE} nud permanent"

+         rlRun "ip neigh show ${TEST_IP4_PREFIX}.1 | grep 'PERMANENT'"

+ 

+         rlRun "ip neigh add ${TEST_IP4_PREFIX}.2 lladdr ${TEST_MAC_PREFIX}:c7 dev ${TEST_IFACE}"

+         rlRun "ip neigh show ${TEST_IP4_PREFIX}.2 | grep 'PERMANENT'"

+ 

+         rlRun "ip neigh add ${TEST_IP4_PREFIX}.3 lladdr ${TEST_MAC_PREFIX}:c8 dev ${TEST_IFACE} nud noarp"

+         rlRun "ip neigh show nud all ${TEST_IP4_PREFIX}.3 | grep 'NOARP'"

+ 

+         rlRun "ip neigh add ${TEST_IP4_PREFIX}.4 lladdr ${TEST_MAC_PREFIX}:c9 dev ${TEST_IFACE} nud noarp"

+         rlRun "ip neigh show nud all ${TEST_IP4_PREFIX}.4 | grep 'NOARP'"

+ 

+         rlRun "ip neigh add lladdr ${TEST_MAC_PREFIX}:ce dev ${TEST_IFACE} proxy ${TEST_IP4_PREFIX}.10"

+         rlIsRHEL ">=7" && rlRun "ip neigh show proxy | grep ${TEST_IP4_PREFIX}.10"

+ 

+         rlRun "test $(ip neigh show dev ${TEST_IFACE} | wc -l) -eq 2" 0 "There are two items in neighbours."

+ 

+         rlRun "ip neigh del ${TEST_IP4_PREFIX}.1 dev ${TEST_IFACE}"

+         rlRun "ip neigh show ${TEST_IP4_PREFIX}.1 | grep 'FAILED'"

+ 

+         rlRun "ip neigh change ${TEST_IP4_PREFIX}.2 lladdr ${TEST_MAC_PREFIX}:ca dev ${TEST_IFACE} nud reachable"

+         rlRun "ip neigh show ${TEST_IP4_PREFIX}.2 | grep 'REACHABLE'"

+ 

+         rlRun "ip neigh replace ${TEST_IP4_PREFIX}.3 lladdr ${TEST_MAC_PREFIX}:cb dev ${TEST_IFACE} nud permanent"

+         rlRun "ip neigh show nud all ${TEST_IP4_PREFIX}.3 | grep 'PERMANENT'"

+ 

+         rlRun "test $(ip neigh show dev ${TEST_IFACE} nud permanent | wc -l) -eq 1" 0 "There is one permanent item in neighbours."

+         rlRun "test $(ip neigh show dev ${TEST_IFACE} nud reachable | wc -l) -eq 1" 0 "There is one reachable item in neighbours."

+         rlRun "test $(ip neigh show dev ${TEST_IFACE} nud noarp | wc -l) -eq 1" 0 "There is one noarp item in neighbours."

+         rlRun "test $(ip neigh show dev ${TEST_IFACE} nud failed | wc -l) -eq 1" 0 "There is one failed item in neighbours."

+         rlIsRHEL ">=7" && rlRun "test $(ip neigh show dev ${TEST_IFACE} proxy | wc -l) -eq 1" 0 "There is one proxy item in neighbours."

+         rlRun "test $(ip neigh show dev ${TEST_IFACE} | grep -e PERMANENT -e REACHABLE -e FAILED | wc -l) -eq 3" 0 "There are three permanent or reachable or failed items in neighbours."

+ 

+         rlRun "ip neigh show dev ${TEST_IFACE} unused"

+ 

+         rlRun "ip neigh change ${TEST_IP4_PREFIX}.4 dev ${TEST_IFACE} nud delay"

+         rlRun "ip neigh flush ${TEST_IP4_PREFIX}.4 dev ${TEST_IFACE}"

+         rlRun "ip neigh show nud all | grep '${TEST_IP4_PREFIX}.4'"

+ 

+         rlRun "ip -s neigh flush ${TEST_IP4_PREFIX}.4 dev ${TEST_IFACE}"

+         rlRun "ip -s -s neigh flush ${TEST_IP4_PREFIX}.4 dev ${TEST_IFACE}"

+ 

+         rlRun "ip neigh add ${TEST_IP4_PREFIX}.11 lladdr ${TEST_MAC_PREFIX}:c8 dev ${TEST_IFACE} nud permanent"

+         rlRun "ip neigh show ${TEST_IP4_PREFIX}.11 | grep 'PERMANENT'"

+ 

+         rlRun "ip neigh change ${TEST_IP4_PREFIX}.11 dev ${TEST_IFACE} nud reachable"

+         rlRun "ip neigh show ${TEST_IP4_PREFIX}.11 | grep 'REACHABLE'"

+ 

+         rlRun "ip neigh change ${TEST_IP4_PREFIX}.11 dev ${TEST_IFACE} nud probe"

+         rlRun "ip neigh show ${TEST_IP4_PREFIX}.11 | grep 'PROBE'"

+ 

+         rlRun "ip neigh change ${TEST_IP4_PREFIX}.11 lladdr ${TEST_MAC_PREFIX}:c9 dev ${TEST_IFACE} nud failed"

+         rlRun "ip neigh show ${TEST_IP4_PREFIX}.11 | grep 'FAILED'"

+ 

+         rlRun "ip neigh change ${TEST_IP4_PREFIX}.11 dev ${TEST_IFACE} nud incomplete"

+         rlRun "ip neigh show ${TEST_IP4_PREFIX}.11 | grep 'INCOMPLETE'"

+ 

+         rlRun "ip neigh replace ${TEST_IP4_PREFIX}.11 lladdr ${TEST_MAC_PREFIX}:cb dev ${TEST_IFACE} nud stale"

+         rlRun "ip neigh show ${TEST_IP4_PREFIX}.11 | grep '${TEST_MAC_PREFIX}:cb' | grep 'STALE'"

+ 

+         rlRun "ip neigh replace ${TEST_IP4_PREFIX}.11 dev ${TEST_IFACE} nud delay"

+         rlRun "ip neigh show ${TEST_IP4_PREFIX}.11 | grep -e 'DELAY' -e 'PROBE'"

+ 

+         rlRun "ip neigh replace ${TEST_IP4_PREFIX}.11 dev ${TEST_IFACE} nud noarp"

+         rlRun "ip neigh show nud all ${TEST_IP4_PREFIX}.11 | grep 'NOARP'"

+ 

+         rlRun "ip neigh change ${TEST_IP4_PREFIX}.11 dev ${TEST_IFACE} nud none"

+         rlRun "ip neigh show nud none | grep ${TEST_IP4_PREFIX}.11"

+ 

+         rlRun "ip neigh show ${TEST_IP4_PREFIX}.0/24"

+ 

+         rlLogInfo "IPv6"

+         rlRun "ip -6 neigh add ${TEST_IP6_PREFIX}1 lladdr ${TEST_MAC_PREFIX}:c6 dev ${TEST_IFACE} nud permanent"

+         rlRun "ip -6 neigh show ${TEST_IP6_PREFIX}1 | grep 'PERMANENT'"

+ 

+         rlRun "ip -6 neigh add ${TEST_IP6_PREFIX}2 lladdr ${TEST_MAC_PREFIX}:c7 dev ${TEST_IFACE}"

+         rlRun "ip -6 neigh show ${TEST_IP6_PREFIX}2 | grep 'PERMANENT'"

+ 

+         rlRun "ip -6 neigh add ${TEST_IP6_PREFIX}3 lladdr ${TEST_MAC_PREFIX}:c8 dev ${TEST_IFACE} nud noarp"

+         rlRun "ip -6 neigh show nud all ${TEST_IP6_PREFIX}3 | grep 'NOARP'"

+ 

+         rlRun "ip -6 neigh add ${TEST_IP6_PREFIX}4 lladdr ${TEST_MAC_PREFIX}:c9 dev ${TEST_IFACE} nud noarp"

+         rlRun "ip -6 neigh show nud all ${TEST_IP6_PREFIX}4 | grep 'NOARP'"

+ 

+         rlRun "ip -6 neigh add lladdr ${TEST_MAC_PREFIX}:ce dev ${TEST_IFACE} proxy ${TEST_IP6_PREFIX}10"

+         rlIsRHEL ">=7" && rlRun "ip -6 neigh show proxy | grep ${TEST_IP6_PREFIX}10"

+ 

+         rlRun "test $(ip -6 neigh show dev ${TEST_IFACE} | wc -l) -eq 2" 0 "There are two items in neighbours."

+ 

+         rlRun "ip -6 neigh del ${TEST_IP6_PREFIX}1 dev ${TEST_IFACE}"

+         rlRun "ip -6 neigh show ${TEST_IP6_PREFIX}1 | grep 'FAILED'"

+ 

+         rlRun "ip -6 neigh change ${TEST_IP6_PREFIX}2 lladdr ${TEST_MAC_PREFIX}:ca dev ${TEST_IFACE} nud reachable"

+         rlRun "ip -6 neigh show ${TEST_IP6_PREFIX}2 | grep 'REACHABLE'"

+ 

+         rlRun "ip -6 neigh replace ${TEST_IP6_PREFIX}3 lladdr ${TEST_MAC_PREFIX}:cb dev ${TEST_IFACE} nud permanent"

+         rlRun "ip -6 neigh show nud all ${TEST_IP6_PREFIX}3 | grep 'PERMANENT'"

+ 

+         rlRun "test $(ip -6 neigh show dev ${TEST_IFACE} nud permanent | wc -l) -eq 1" 0 "There is one permanent item in neighbours."

+         rlRun "test $(ip -6 neigh show dev ${TEST_IFACE} nud reachable | wc -l) -eq 1" 0 "There is one reachable item in neighbours."

+         rlRun "test $(ip -6 neigh show dev ${TEST_IFACE} nud noarp | wc -l) -eq 1" 0 "There is one noarp item in neighbours."

+         rlRun "test $(ip -6 neigh show dev ${TEST_IFACE} nud failed | wc -l) -eq 1" 0 "There is one failed item in neighbours."

+         rlIsRHEL ">=7" && rlRun "test $(ip -6 neigh show dev ${TEST_IFACE} proxy | wc -l) -eq 1" 0 "There is one proxy item in neighbours."

+         rlRun "test $(ip -6 neigh show dev ${TEST_IFACE} | grep -e PERMANENT -e REACHABLE -e FAILED | wc -l) -eq 3" 0 "There are three permanent or reachable or failed items in neighbours."

+ 

+         rlRun "ip -6 neigh show dev ${TEST_IFACE} unused"

+ 

+         rlRun "ip -6 neigh change ${TEST_IP6_PREFIX}4 dev ${TEST_IFACE} nud delay"

+         rlRun "ip -6 neigh flush ${TEST_IP6_PREFIX}4 dev ${TEST_IFACE}"

+         rlRun "ip -6 neigh show nud all | grep '${TEST_IP6_PREFIX}4'"

+ 

+         rlRun "ip -6 -s neigh flush ${TEST_IP6_PREFIX}4 dev ${TEST_IFACE}"

+         rlRun "ip -6 -s -s neigh flush ${TEST_IP6_PREFIX}4 dev ${TEST_IFACE}"

+ 

+         rlRun "ip -6 neigh add ${TEST_IP6_PREFIX}11 lladdr ${TEST_MAC_PREFIX}:c8 dev ${TEST_IFACE} nud permanent"

+         rlRun "ip -6 neigh show ${TEST_IP6_PREFIX}11 | grep 'PERMANENT'"

+ 

+         rlRun "ip -6 neigh change ${TEST_IP6_PREFIX}11 dev ${TEST_IFACE} nud reachable"

+         rlRun "ip -6 neigh show ${TEST_IP6_PREFIX}11 | grep 'REACHABLE'"

+ 

+         rlRun "ip -6 neigh change ${TEST_IP6_PREFIX}11 dev ${TEST_IFACE} nud probe"

+         rlRun "ip -6 neigh show ${TEST_IP6_PREFIX}11 | grep 'PROBE'"

+ 

+         rlRun "ip -6 neigh change ${TEST_IP6_PREFIX}11 lladdr ${TEST_MAC_PREFIX}:c9 dev ${TEST_IFACE} nud failed"

+         rlRun "ip -6 neigh show ${TEST_IP6_PREFIX}11 | grep 'FAILED'"

+ 

+         rlRun "ip -6 neigh change ${TEST_IP6_PREFIX}11 dev ${TEST_IFACE} nud incomplete"

+         rlRun "ip -6 neigh show ${TEST_IP6_PREFIX}11 | grep 'INCOMPLETE'"

+ 

+         rlRun "ip -6 neigh replace ${TEST_IP6_PREFIX}11 lladdr ${TEST_MAC_PREFIX}:cb dev ${TEST_IFACE} nud stale"

+         rlRun "ip -6 neigh show ${TEST_IP6_PREFIX}11 | grep '${TEST_MAC_PREFIX}:cb' | grep 'STALE'"

+ 

+         rlRun "ip -6 neigh replace ${TEST_IP6_PREFIX}11 dev ${TEST_IFACE} nud delay"

+         rlRun "ip -6 neigh show ${TEST_IP6_PREFIX}11 | grep -e 'DELAY' -e 'PROBE'"

+ 

+         rlRun "ip -6 neigh replace ${TEST_IP6_PREFIX}11 dev ${TEST_IFACE} nud noarp"

+         rlRun "ip -6 neigh show nud all ${TEST_IP6_PREFIX}11 | grep 'NOARP'"

+ 

+         rlRun "ip -6 neigh change ${TEST_IP6_PREFIX}11 dev ${TEST_IFACE} nud none"

+         rlRun "ip -6 neigh show nud none | grep ${TEST_IP6_PREFIX}11"

+ 

+         rlRun "ip -6 neigh show ${TEST_IP6_PREFIX}0/24"

+     rlPhaseEnd

+ 

+     rlPhaseStartTest

+         pushd /tmp # because of coredump file

+         tail -f -n 0 "$MESSAGES" > "$TMP_MESSAGES" &

+         tail_pid="$!"

+         rlRun "ip neigh add ${TEST_IP4_PREFIX}.11 lladdr ${TEST_MAC_PREFIX}:c16 dev ${TEST_IFACE} nud permanent" 1,255

+         kill "$tail_pid"

+         rlRun "grep -i -e 'segfault' -e 'unhandled signal' -e 'User process fault' ${TMP_MESSAGES}" 1 "Checking there is no segfault in /var/log/messages."

+         popd

+     rlPhaseEnd

+ 

+     rlPhaseStartCleanup

+         delete_dummy_iface

+         rlRun "rm ${TMP_MESSAGES}" 0 "Removing tmp files and dirs."

+     rlPhaseEnd

+ 

+     rlJournalPrintText

+ rlJournalEnd

@@ -0,0 +1,63 @@ 

+ # ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

+ #

+ #   Makefile of /CoreOS/iproute/Sanity/ip-rule-sanity-test

+ #   Description: Test basic ip rule functionality

+ #   Author: Jaroslav Aster <jaster@redhat.com>

+ #

+ # ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

+ #

+ #   Copyright (c) 2014 Red Hat, Inc. All rights reserved.

+ #

+ #   This copyrighted material is made available to anyone wishing

+ #   to use, modify, copy, or redistribute it subject to the terms

+ #   and conditions of the GNU General Public License version 2.

+ #

+ #   This program is distributed in the hope that it will be

+ #   useful, but WITHOUT ANY WARRANTY; without even the implied

+ #   warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR

+ #   PURPOSE. See the GNU General Public License for more details.

+ #

+ #   You should have received a copy of the GNU General Public

+ #   License along with this program; if not, write to the Free

+ #   Software Foundation, Inc., 51 Franklin Street, Fifth Floor,

+ #   Boston, MA 02110-1301, USA.

+ #

+ # ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

+ 

+ export TEST=/CoreOS/iproute/Sanity/ip-rule-sanity-test

+ export TESTVERSION=1.0

+ 

+ BUILT_FILES=

+ 

+ FILES=$(METADATA) runtest.sh Makefile PURPOSE

+ 

+ .PHONY: all install download clean

+ 

+ run: $(FILES) build

+ 	./runtest.sh

+ 

+ build: $(BUILT_FILES)

+ 	test -x runtest.sh || chmod a+x runtest.sh

+ 

+ clean:

+ 	rm -f *~ $(BUILT_FILES)

+ 

+ 

+ include /usr/share/rhts/lib/rhts-make.include

+ 

+ $(METADATA): Makefile

+ 	@echo "Owner:           Jaroslav Aster <jaster@redhat.com>" > $(METADATA)

+ 	@echo "Name:            $(TEST)" >> $(METADATA)

+ 	@echo "TestVersion:     $(TESTVERSION)" >> $(METADATA)

+ 	@echo "Path:            $(TEST_DIR)" >> $(METADATA)

+ 	@echo "Description:     Test basic ip rule funcionality" >> $(METADATA)

+ 	@echo "Type:            Sanity" >> $(METADATA)

+ 	@echo "TestTime:        15m" >> $(METADATA)

+ 	@echo "RunFor:          iproute" >> $(METADATA)

+ 	@echo "Requires:        iproute" >> $(METADATA)

+ 	@echo "Priority:        Normal" >> $(METADATA)

+ 	@echo "License:         GPLv2" >> $(METADATA)

+ 	@echo "Confidential:    no" >> $(METADATA)

+ 	@echo "Destructive:     no" >> $(METADATA)

+ 

+ 	rhts-lint $(METADATA)

@@ -0,0 +1,3 @@ 

+ PURPOSE of /CoreOS/iproute/Sanity/ip-rule-sanity-test

+ Description: Test basic ip rule funcionality

+ Author: Jaroslav Aster <jaster@redhat.com>

@@ -0,0 +1,107 @@ 

+ #!/bin/bash

+ # vim: dict=/usr/share/beakerlib/dictionary.vim cpt=.,w,b,u,t,i,k

+ # ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

+ #

+ #   runtest.sh of /CoreOS/iproute/Sanity/ip-rule-sanity-test

+ #   Description: Test basic ip rule funcionality

+ #   Author: Jaroslav Aster <jaster@redhat.com>

+ #

+ # ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

+ #

+ #   Copyright (c) 2014 Red Hat, Inc. All rights reserved.

+ #

+ #   This copyrighted material is made available to anyone wishing

+ #   to use, modify, copy, or redistribute it subject to the terms

+ #   and conditions of the GNU General Public License version 2.

+ #

+ #   This program is distributed in the hope that it will be

+ #   useful, but WITHOUT ANY WARRANTY; without even the implied

+ #   warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR

+ #   PURPOSE. See the GNU General Public License for more details.

+ #

+ #   You should have received a copy of the GNU General Public

+ #   License along with this program; if not, write to the Free

+ #   Software Foundation, Inc., 51 Franklin Street, Fifth Floor,

+ #   Boston, MA 02110-1301, USA.

+ #

+ # ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

+ 

+ # Include Beaker environment

+ . /usr/bin/rhts-environment.sh || exit 1

+ . /usr/share/beakerlib/beakerlib.sh || exit 1

+ 

+ PACKAGE="iproute"

+ DEFAULT_IFACE="$(ip route show | grep default | sed 's/.*dev \([^ ]\+\) .*/\1/' | head -n 1)"

+ rlIsRHEL '>=7' && IP_RULE_MANPAGE="ip-rule" || IP_RULE_MANPAGE="ip"

+ 

+ 

+ rlJournalStart

+     rlPhaseStartSetup

+         rlCheckRpm "$PACKAGE"

+     rlPhaseEnd

+ 

+     rlPhaseStartTest "Basic sanity test"

+         rlRun "ip rule list"

+ 

+         rlRun "ip rule add from 172.29.0.0/24 to 172.29.1.0/24 table 1110"

+         rlRun "ip rule add not from 172.29.0.0/24 to 172.29.1.0/24 table 1111"

+         rlRun "ip -6 rule add from 2404:6800:4003:801::1015/32 to 2404:6800:4003:801::1014/32 table 1111"

+         rlIsRHEL '>=7' && rlRun "ip rule add oif ${DEFAULT_IFACE} table 1111"

+         rlRun "ip rule add iif ${DEFAULT_IFACE} tos 10 table 1112"

+         rlRun "ip rule add fwmark 123 pref 100 table 1112"

+         rlRun "ip rule add not fwmark 124 pref 101 unreachable"

+         rlRun "ip rule add fwmark 125 pref 102 prohibit"

+         rlRun "ip rule add fwmark 126 pref 103 unicast"

+         rlRun "ip rule add from 172.29.2.0/24 tos 10 blackhole"

+         rlRun "ip rule add from 172.29.0.0/24 tos 6 prio 99 goto 103"

+ 

+         rlRun "ip rule list"

+ 

+         rlRun "ip rule list | grep 'from 172.29.0.0/24 to 172.29.1.0/24'"

+         rlRun "ip rule list | grep 'not from 172.29.0.0/24 to 172.29.1.0/24'"

+         rlRun "ip -6 rule list | grep 'from 2404:6800:4003:801::1015/32 to 2404:6800:4003:801::1014/32'"

+         rlIsRHEL '>=7' && rlRun "ip rule list | grep 'oif ${DEFAULT_IFACE}'"

+         ! rlIsFedora && rlRun "ip rule list | grep 'tos lowdelay iif ${DEFAULT_IFACE}'"

+         rlRun "ip rule list | grep 'from all fwmark 0x7b'"

+         rlRun "ip rule list | grep 'not from all fwmark 0x7c unreachable'"

+         rlRun "ip rule list | grep 'from all fwmark 0x7d prohibit'"

+         rlRun "ip rule list | grep 'from all fwmark 0x7e'"

+         ! rlIsFedora && rlRun "ip rule list | grep 'from 172.29.2.0/24 tos lowdelay blackhole'"

+         rlRun "ip rule list | grep 'from 172.29.0.0/24 tos 0x06 goto 103'"

+ 

+         rlRun "ip rule list"

+ 

+         rlRun "ip rule del from 172.29.0.0/24 to 172.29.1.0/24"

+         rlRun "ip rule del not from 172.29.0.0/24 to 172.29.1.0/24"

+         rlRun "ip -6 rule del from 2404:6800:4003:801::1015/32 to 2404:6800:4003:801::1014/32"

+         rlIsRHEL '>=7' && rlRun "ip rule del oif ${DEFAULT_IFACE}"

+         ! rlIsFedora && rlRun "ip rule del iif ${DEFAULT_IFACE} tos lowdelay"

+         rlRun "ip rule del fwmark 123 pref 100"

+         rlRun "ip rule del not fwmark 124 pref 101 unreachable"

+         rlRun "ip rule del fwmark 125 pref 102 prohibit"

+         rlRun "ip rule del fwmark 126 pref 103 unicast"

+         rlRun "ip rule del from 172.29.2.0/24 tos 10 blackhole"

+         rlRun "ip rule del from 172.29.0.0/24 tos 6 prio 99 goto 103"

+ 

+         rlRun "ip rule list"

+     rlPhaseEnd

+ 

+     if rlIsRHEL '>=7'; then

+         rlPhaseStartTest

+             saved_rule=$(ip rule list | grep '^0' | cut -d : -f 2 | head -n 1)

+             rlRun "ip rule del prio 0" 0 "Removing rule with prio 0."

+             rlRun "ip rule add prio 0 ${saved_rule}" 0 "Re-creating rule with prio 0."

+             rlRun "man ${IP_RULE_MANPAGE} | col -b | grep 'Rule 0 is special. It cannot be deleted or overridden.'" 1

+         rlPhaseEnd

+     fi

+ 

+     rlPhaseStartTest

+         rlRun "man ${IP_RULE_MANPAGE} | col -b | grep 'reject'" 1

+         rlRun "ip rule help 2>&1 | grep 'reject'" 1

+     rlPhaseEnd

+ 

+     rlPhaseStartCleanup

+     rlPhaseEnd

+ 

+     rlJournalPrintText

+ rlJournalEnd

file added
+15

@@ -0,0 +1,15 @@ 

+ ---

+ # Tests that run in all contexts

+ - hosts: localhost

+   roles:

+   - role: standard-test-beakerlib

+     tags:

+     - classic

+     - atomic

+     tests:

+     - ip-neigh-sanity-test

+     - ip-rule-sanity-test

+     - bridge-utility

+     required_packages:

+     - iproute

+     - bridge-utils

Adds tests according to the CI wiki [0] specifically the standard test interface in the spec [1].

The playbook includes Tier1 level test cases that have been tested in the following contexts and is passing reliably: Atomic Host, and Classic.
Test logs are stored in the artifacts directory. Note that the test is not usable under Docker so Docker has been omitted from the playbook

The following steps are used to execute the tests using the standard test interface:

Atomic
sudo ANSIBLE_INVENTORY=$(test -e inventory && echo inventory || echo /usr/share/ansible/inventory) TEST_SUBJECTS=../atomic.qcow2 TEST_ARTIFACTS=$PWD/artifacts ansible-playbook --tags atomic tests.yml

Classic
sudo ANSIBLE_INVENTORY=$(test -e inventory && echo inventory || echo /usr/share/ansible/inventory) TEST_SUBJECTS="" TEST_ARTIFACTS=$PWD/artifacts ansible-playbook --tags classic tests.yml

[0] https://fedoraproject.org/wiki/CI
[1] https://fedoraproject.org/wiki/Changes/InvokingTests

Commit 654c72b fixes this pull-request

Pull-Request has been merged by psutter

2 years ago

Pull-Request has been merged by psutter

2 years ago