• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1#!/bin/sh
2# Copyright (c) 2017-2018 Petr Vorel <pvorel@suse.cz>
3# Copyright (c) 2015 Oracle and/or its affiliates. All Rights Reserved.
4# Copyright (c) International Business Machines  Corp., 2005
5#
6# This program is free software; you can redistribute it and/or
7# modify it under the terms of the GNU General Public License as
8# published by the Free Software Foundation; either version 2 of
9# the License, or (at your option) any later version.
10#
11# This program is distributed in the hope that it would be useful,
12# but WITHOUT ANY WARRANTY; without even the implied warranty of
13# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
14# GNU General Public License for more details.
15#
16# You should have received a copy of the GNU General Public License
17# along with this program. If not, see <http://www.gnu.org/licenses/>.
18#
19# Author: Mitsuru Chinen <mitch@jp.ibm.com>
20
21IF_CMD='ifconfig'
22TST_CLEANUP="if_cleanup_restore"
23. if-lib.sh
24
25CHECK_INTERVAL=${CHECK_INTERVAL:-$(($IF_UPDOWN_TIMES / 20))}
26
27test_body()
28{
29	local cmd="$CMD"
30	local iface=$(tst_iface)
31
32	tst_res TINFO "'$cmd' ups/downs $iface $IF_UPDOWN_TIMES times"
33	tst_res TINFO "check connectivity interval is $CHECK_INTERVAL"
34
35	local cnt=1
36	while [ $cnt -le $IF_UPDOWN_TIMES ]; do
37		case $cmd in
38		ifconfig) ifconfig $iface down ;;
39		ip) ip link set $iface down ;;
40		esac
41		if [ $? -ne 0 ]; then
42			tst_res TFAIL "Failed to down $iface"
43			return
44		fi
45
46		case $cmd in
47		ifconfig) ifconfig $iface up ;;
48		ip) ip link set $iface up ;;
49		esac
50		if [ $? -ne 0 ]; then
51			tst_res TFAIL "Failed to up $iface"
52			return
53		fi
54
55		check_connectivity_interval $cnt restore_ip || return
56
57		cnt=$(($cnt + 1))
58	done
59
60	tst_res TPASS "Test is finished correctly"
61}
62
63tst_run
64