@@ -39,54 +39,61 @@ rm -f "$res_file"
39
39
40
40
log_info " --------------------------------------------------------------------------"
41
41
log_info " -------------------Starting $TESTNAME Testcase----------------------------"
42
-
42
+
43
+ # Check for dependencies
43
44
check_dependencies ip ping
44
-
45
- IFACE=" eth0"
45
+
46
46
RETRIES=3
47
47
SLEEP_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 ))
65
87
fi
66
- log_warn " $IFACE is still DOWN (attempt $(( i + 1 )) /$RETRIES )..."
67
- i=$(( i + 1 ))
68
88
done
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)"
73
98
exit 1
74
99
fi
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