Skip to content

Commit a1c3777

Browse files
committed
WiFi_Dynamic_IP: add --ssid/--password CLI
- Accepts new CLI flags: --ssid <SSID> and --password <PASS>. - If provided, these override positional args; otherwise falls back to the existing get_wifi_credentials resolution (args/env/ssid_list). - Converted inline one-liners to multi-line commands for readability while preserving behavior (nmcli path, wpa_supplicant+udhcpc path, ping checks). - No exports of SSID/PASSWORD kept values local to the script. - No changes to connection logic, retries, gating, or result reporting. Signed-off-by: Srikanth Muppandam <[email protected]>
1 parent 5c512e1 commit a1c3777

File tree

1 file changed

+75
-12
lines changed
  • Runner/suites/Connectivity/WiFi/WiFi_Dynamic_IP

1 file changed

+75
-12
lines changed

Runner/suites/Connectivity/WiFi/WiFi_Dynamic_IP/run.sh

Lines changed: 75 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,4 @@
11
#!/bin/sh
2-
32
# Copyright (c) Qualcomm Technologies, Inc. and/or its subsidiaries.
43
# SPDX-License-Identifier: BSD-3-Clause-Clear
54

@@ -33,42 +32,106 @@ TESTNAME="WiFi_Dynamic_IP"
3332
test_path=$(find_test_case_by_name "$TESTNAME")
3433
cd "$test_path" || exit 1
3534

35+
# ---------------- CLI (SSID/PASSWORD) ----------------
36+
SSID=""
37+
PASSWORD=""
38+
39+
while [ $# -gt 0 ]; do
40+
case "$1" in
41+
--ssid)
42+
shift
43+
if [ -n "${1:-}" ]; then
44+
SSID="$1"
45+
fi
46+
;;
47+
--password)
48+
shift
49+
if [ -n "${1:-}" ]; then
50+
PASSWORD="$1"
51+
fi
52+
;;
53+
--help|-h)
54+
echo "Usage: $0 [--ssid SSID] [--password PASS]"
55+
exit 0
56+
;;
57+
*)
58+
log_warn "Unknown argument: $1"
59+
;;
60+
esac
61+
shift
62+
done
63+
3664
log_info "-------------------------------------------------------------"
3765
log_info "------------------- Starting $TESTNAME Test -----------------"
66+
log_info "Host: $(hostname 2>/dev/null || printf 'unknown')"
67+
log_info "Kernel: $(uname -r 2>/dev/null || printf 'unknown')"
68+
log_info "Date: $(date -u 2>/dev/null || printf 'unknown')"
3869

3970
# Credential extraction
40-
creds=$(get_wifi_credentials "$1" "$2") || log_skip_exit "$TESTNAME" "WiFi: SSID and/or password missing. Skipping test." wifi_cleanup ""
71+
creds=$(get_wifi_credentials "$SSID" "$PASSWORD") || \
72+
log_skip_exit "$TESTNAME" "WiFi: SSID and/or password missing. Skipping test." wifi_cleanup ""
73+
4174
SSID=$(echo "$creds" | awk '{print $1}')
4275
PASSWORD=$(echo "$creds" | awk '{print $2}')
76+
4377
log_info "Using SSID='$SSID' and PASSWORD='[hidden]'"
4478

4579
check_dependencies iw ping
4680

4781
# If not a kernel-only/minimal build, systemd is checked, else skipped automatically
48-
check_systemd_services systemd-networkd.service || log_fail_exit "$TESTNAME" "Network services check failed" wifi_cleanup ""
82+
log_info "Checking network service: systemd-networkd.service"
83+
check_systemd_services systemd-networkd.service || \
84+
log_fail_exit "$TESTNAME" "Network services check failed" wifi_cleanup ""
85+
86+
WIFI_IFACE=$(get_wifi_interface) || \
87+
log_fail_exit "$TESTNAME" "No WiFi interface found" wifi_cleanup ""
4988

50-
WIFI_IFACE=$(get_wifi_interface) || log_fail_exit "$TESTNAME" "No WiFi interface found" wifi_cleanup ""
5189
log_info "Using WiFi interface: $WIFI_IFACE"
5290

91+
# Prepare a ping log file for command output (appended across retries)
92+
PING_LOG="./wifi_ping_${WIFI_IFACE}.log"
93+
: > "$PING_LOG"
94+
log_info "Ping output will be logged to: $PING_LOG"
95+
5396
# nmcli with retry
97+
log_info "Attempting connection via nmcli…"
5498
if wifi_connect_nmcli "$WIFI_IFACE" "$SSID" "$PASSWORD"; then
5599
IP=$(wifi_get_ip "$WIFI_IFACE")
56-
[ -z "$IP" ] && log_fail_exit "$TESTNAME" "No IP after nmcli" wifi_cleanup "$WIFI_IFACE"
57-
if retry_command "ping -I \"$WIFI_IFACE\" -c 3 -W 2 8.8.8.8 >/dev/null 2>&1" 3 3; then
58-
log_pass_exit "$TESTNAME" "Internet connectivity verified via ping" wifi_cleanup "$WIFI_IFACE"
100+
101+
if [ -z "$IP" ]; then
102+
log_fail_exit "$TESTNAME" "No IP after nmcli" wifi_cleanup "$WIFI_IFACE"
103+
fi
104+
105+
log_info "Acquired IP via nmcli: $IP"
106+
107+
PING_CMD="ping -I \"$WIFI_IFACE\" -c 3 -W 2 8.8.8.8 2>&1 | tee -a \"$PING_LOG\""
108+
log_info "Connectivity check command: $PING_CMD"
109+
110+
if retry_command "$PING_CMD" 3 3; then
111+
log_pass_exit "$TESTNAME" "Internet connectivity verified via ping (iface=$WIFI_IFACE ip=$IP)" wifi_cleanup "$WIFI_IFACE"
59112
else
60-
log_fail_exit "$TESTNAME" "Ping test failed after nmcli connection" wifi_cleanup "$WIFI_IFACE"
113+
log_fail_exit "$TESTNAME" "Ping test failed after nmcli connection (iface=$WIFI_IFACE ip=$IP). See $PING_LOG" wifi_cleanup "$WIFI_IFACE"
61114
fi
62115
fi
63116

64117
# wpa_supplicant+udhcpc with retry
118+
log_info "Attempting connection via wpa_supplicant + udhcpc…"
65119
if wifi_connect_wpa_supplicant "$WIFI_IFACE" "$SSID" "$PASSWORD"; then
66120
IP=$(wifi_get_ip "$WIFI_IFACE")
67-
[ -z "$IP" ] && log_fail_exit "$TESTNAME" "No IP after wpa_supplicant" wifi_cleanup "$WIFI_IFACE"
68-
if retry_command "ping -I \"$WIFI_IFACE\" -c 3 -W 2 8.8.8.8 >/dev/null 2>&1" 3 3; then
69-
log_pass_exit "$TESTNAME" "Internet connectivity verified via ping" wifi_cleanup "$WIFI_IFACE"
121+
122+
if [ -z "$IP" ]; then
123+
log_fail_exit "$TESTNAME" "No IP after wpa_supplicant" wifi_cleanup "$WIFI_IFACE"
124+
fi
125+
126+
log_info "Acquired IP via wpa_supplicant: $IP"
127+
128+
PING_CMD="ping -I \"$WIFI_IFACE\" -c 3 -W 2 8.8.8.8 2>&1 | tee -a \"$PING_LOG\""
129+
log_info "Connectivity check command: $PING_CMD"
130+
131+
if retry_command "$PING_CMD" 3 3; then
132+
log_pass_exit "$TESTNAME" "Internet connectivity verified via ping (iface=$WIFI_IFACE ip=$IP)" wifi_cleanup "$WIFI_IFACE"
70133
else
71-
log_fail_exit "$TESTNAME" "Ping test failed after wpa_supplicant connection" wifi_cleanup "$WIFI_IFACE"
134+
log_fail_exit "$TESTNAME" "Ping test failed after wpa_supplicant connection (iface=$WIFI_IFACE ip=$IP). See $PING_LOG" wifi_cleanup "$WIFI_IFACE"
72135
fi
73136
fi
74137

0 commit comments

Comments
 (0)