@@ -39,54 +39,58 @@ 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
+ # 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
46
55
RETRIES=3
47
56
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
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
65
70
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
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
+ 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 "
73
95
exit 1
74
96
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