@@ -39,54 +39,58 @@ rm -f "$res_file"
3939
4040log_info " --------------------------------------------------------------------------"
4141log_info " -------------------Starting $TESTNAME Testcase----------------------------"
42-
42+
43+ # Check for dependencies
4344check_dependencies ip ping
44-
45- IFACE=" eth0"
45+
46+ # Get all Ethernet interfaces (excluding loopback, wifi, virtual, etc)
47+ IFACES=$( get_ethernet_interfaces)
48+ if [ -z " $IFACES " ]; then
49+ log_skip " No valid Ethernet interfaces detected."
50+ echo " $TESTNAME SKIP" > " $res_file "
51+ exit 0
52+ fi
53+
54+ SUCCESS=0
4655RETRIES=3
4756SLEEP_SEC=3
48-
49- # Check interface existence
50- if ! ip link show " $IFACE " > /dev/null 2>&1 ; then
51- log_fail " Ethernet interface $IFACE not found"
52- echo " FAIL $TESTNAME " > " $res_file "
53- exit 1
54- fi
55-
56- # Bring up interface with retries
57- log_info " Ensuring $IFACE is UP..."
58- i=0
59- while [ $i -lt $RETRIES ]; do
60- ip link set " $IFACE " up
61- sleep " $SLEEP_SEC "
62- if ip link show " $IFACE " | grep -q " state UP" ; then
63- log_info " $IFACE is UP"
64- break
57+
58+ for IFACE in $IFACES ; do
59+ log_info " Trying Ethernet interface: $IFACE "
60+ if ! bringup_interface " $IFACE " " $RETRIES " " $SLEEP_SEC " ; then
61+ log_warn " Could not bring up $IFACE after $RETRIES retries. Trying next."
62+ continue
63+ fi
64+ log_pass " $IFACE is UP, waiting for IP address..."
65+
66+ IPADDR=$( wait_for_ip_address " $IFACE " 20)
67+ if [ -z " $IPADDR " ]; then
68+ log_warn " $IFACE : No IP address assigned after timeout."
69+ continue
6570 fi
66- log_warn " $IFACE is still DOWN (attempt $(( i + 1 )) /$RETRIES )..."
67- i=$(( i + 1 ))
71+ log_pass " $IFACE has IP: $IPADDR "
72+
73+ log_info " Pinging 8.8.8.8 via $IFACE ..."
74+ i=0
75+ while [ $i -lt $RETRIES ]; do
76+ if ping -I " $IFACE " -c 4 -W 2 8.8.8.8 > /dev/null 2>&1 ; then
77+ log_pass " Ethernet connectivity verified via ping on $IFACE "
78+ echo " $TESTNAME PASS" > " $res_file "
79+ SUCCESS=1
80+ break
81+ fi
82+ log_warn " $IFACE : Ping failed (attempt $(( i + 1 )) /$RETRIES )..."
83+ sleep " $SLEEP_SEC "
84+ i=$(( i + 1 ))
85+ done
86+
87+ [ $SUCCESS -eq 1 ] && break
6888done
69-
70- if [ $i -eq $RETRIES ]; then
71- log_fail " Failed to bring up $IFACE after $RETRIES attempts"
72- echo " FAIL $TESTNAME " > " $res_file "
89+
90+ if [ $SUCCESS -eq 1 ]; then
91+ exit 0
92+ else
93+ log_fail " No Ethernet interface passed connectivity tests"
94+ echo " $TESTNAME FAIL" > " $res_file "
7395 exit 1
7496fi
75-
76- # Ping test with retries
77- log_info " Running ping test to 8.8.8.8 via $IFACE ..."
78- i=0
79- while [ $i -lt $RETRIES ]; do
80- if ping -I " $IFACE " -c 4 -W 2 8.8.8.8 > /dev/null 2>&1 ; then
81- log_pass " Ethernet connectivity verified via ping"
82- echo " PASS $TESTNAME " > " $res_file "
83- exit 0
84- fi
85- log_warn " Ping failed (attempt $(( i + 1 )) /$RETRIES )... retrying"
86- sleep " $SLEEP_SEC "
87- i=$(( i + 1 ))
88- done
89-
90- log_fail " Ping test failed after $RETRIES attempts"
91- echo " FAIL $TESTNAME " > " $res_file "
92- exit 1
0 commit comments