@@ -39,54 +39,61 @@ 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+
4646RETRIES=3
4747SLEEP_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
48+ PASS_COUNT=0
49+ FAIL_COUNT=0
50+
51+ # Loop over all detected Ethernet interfaces
52+ for IFACE in $( get_ethernet_interfaces) ; do
53+ log_info " Testing interface: $IFACE "
54+
55+ # Bring up interface with retries
56+ if ! bringup_interface " $IFACE " $RETRIES $SLEEP_SEC ; then
57+ log_warn " Failed to bring up $IFACE after $RETRIES attempts. Skipping..."
58+ FAIL_COUNT=$(( FAIL_COUNT+ 1 ))
59+ continue
60+ fi
61+
62+ # Wait for IP address (optional, but recommended for DHCP setups)
63+ IP=$( wait_for_ip_address " $IFACE " 15)
64+ if [ -z " $IP " ]; then
65+ log_warn " No IP address assigned to $IFACE after 15 seconds. Skipping..."
66+ FAIL_COUNT=$(( FAIL_COUNT+ 1 ))
67+ continue
68+ fi
69+ log_info " Interface $IFACE has IP: $IP "
70+
71+ # Ping test with retries
72+ i=0
73+ while [ $i -lt $RETRIES ]; do
74+ if ping -I " $IFACE " -c 4 -W 2 8.8.8.8 > /dev/null 2>&1 ; then
75+ log_pass " Ethernet connectivity verified via ping on $IFACE "
76+ PASS_COUNT=$(( PASS_COUNT+ 1 ))
77+ break
78+ fi
79+ log_warn " Ping via $IFACE failed (attempt $(( i + 1 )) /$RETRIES )..."
80+ sleep " $SLEEP_SEC "
81+ i=$(( i + 1 ))
82+ done
83+
84+ if [ $i -eq $RETRIES ]; then
85+ log_fail " Ping test failed on $IFACE after $RETRIES attempts"
86+ FAIL_COUNT=$(( FAIL_COUNT+ 1 ))
6587 fi
66- log_warn " $IFACE is still DOWN (attempt $(( i + 1 )) /$RETRIES )..."
67- i=$(( i + 1 ))
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+ # Final result: pass if at least one interface passed
91+ if [ $PASS_COUNT -gt 0 ]; then
92+ echo " $TESTNAME PASS" > " $res_file "
93+ log_pass " $TESTNAME : PASS ($PASS_COUNT interface(s) passed, $FAIL_COUNT failed)"
94+ exit 0
95+ else
96+ echo " $TESTNAME FAIL" > " $res_file "
97+ log_fail " $TESTNAME : FAIL (No interface passed)"
7398 exit 1
7499fi
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