Add sysfs-interface-framework
Signed-off-by: Vishal Bhoj <vishal.bhoj@linaro.org>
diff --git a/automated/linux/peripherals/sysfs-interface-framework.sh b/automated/linux/peripherals/sysfs-interface-framework.sh
new file mode 100755
index 0000000..63a7cae
--- /dev/null
+++ b/automated/linux/peripherals/sysfs-interface-framework.sh
@@ -0,0 +1,204 @@
+#!/bin/sh
+
+OUTPUT="$(pwd)/output"
+RESULT_FILE="${OUTPUT}/result.txt"
+mkdir $OUTPUT
+export RESULT_FILE
+
+# ----------------------
+# Peripheral Validation
+# ----------------------
+
+# Function to validate USB devices
+validate_usb_devices() {
+ echo "=== Validating USB Devices ==="
+ USB_PATH="/sys/bus/usb/devices/"
+ if [ -d "$USB_PATH" ]; then
+ echo "usb-sysfs-test pass" >> $RESULT_FILE
+ usb_devices=$(ls -1 $USB_PATH | grep -E '^[0-9]+-[0-9]+$')
+ if [ -z "$usb_devices" ]; then
+ echo "usb-device-test fail" >> $RESULT_FILE
+ echo "No USB devices found."
+ else
+ echo "usb-device-test pass" >> $RESULT_FILE
+ echo "USB devices found:"
+ echo "$usb_devices"
+ fi
+ else
+ echo "USB sysfs directory not found."
+ echo "usb-sysfs-test fail" >> $RESULT_FILE
+ fi
+ echo ""
+}
+
+# Function to validate network interfaces
+validate_network_interfaces() {
+ echo "=== Validating Network Interfaces ==="
+ NETWORK_PATH="/sys/class/net/"
+ if [ -d "$NETWORK_PATH" ]; then
+ echo "network-sysfs-test pass" >> $RESULT_FILE
+ interfaces=$(ls -1 $NETWORK_PATH)
+ if [ -z "$interfaces" ]; then
+ echo "network-interface-test fail" >> $RESULT_FILE
+ echo "No network interfaces found."
+ else
+ echo "network-interface-test pass" >> $RESULT_FILE
+ echo "Network interfaces found:"
+ echo "$interfaces"
+ fi
+ else
+ echo "network-sysfs-test fail" >> $RESULT_FILE
+ echo "Network interface sysfs directory not found."
+ fi
+ echo ""
+}
+
+# Function to validate block devices
+validate_block_devices() {
+ echo "=== Validating Block Devices (Storage) ==="
+ BLOCK_PATH="/sys/class/block/"
+ if [ -d "$BLOCK_PATH" ]; then
+ echo "block-sysfs-test pass" >> $RESULT_FILE
+ block_devices=$(ls -1 $BLOCK_PATH)
+ if [ -z "$block_devices" ]; then
+ echo "block-device-test fail" >> $RESULT_FILE
+ echo "No block devices found."
+ else
+ echo "block-device-test pass" >> $RESULT_FILE
+ echo "Block devices found:"
+ echo "$block_devices"
+ fi
+ else
+ echo "block-sysfs-test fail" >> $RESULT_FILE
+ echo "Block device sysfs directory not found."
+ fi
+ echo ""
+}
+
+# Function to validate Wi-Fi status
+validate_wifi() {
+ echo "=== Validating Wi-Fi Status ==="
+ WIFI_INTERFACE=$(ls /sys/class/net | grep -E 'wl.*[0-9]+')
+ if [ -n "$WIFI_INTERFACE" ]; then
+ echo "wifi-sysfs-test pass" >> $RESULT_FILE
+ echo "Wi-Fi interface detected: $WIFI_INTERFACE"
+ echo "Checking if Wi-Fi is up..."
+ state=$(cat /sys/class/net/$WIFI_INTERFACE/operstate)
+ if [ "$state" = "up" ]; then
+ echo "wifi-up-test pass" >> $RESULT_FILE
+ echo "Wi-Fi is up and running."
+ else
+ echo "wifi-up-test fail" >> $RESULT_FILE
+ echo "Wi-Fi is down."
+ fi
+ else
+ echo "wifi-sysfs-test fail" >> $RESULT_FILE
+ echo "No Wi-Fi interface found."
+ fi
+ echo ""
+}
+
+# Function to validate Bluetooth status
+validate_bluetooth() {
+ echo "=== Validating Bluetooth Status ==="
+ BT_PATH="/sys/class/bluetooth/"
+ if [ -d "$BT_PATH" ]; then
+ echo "bt-sysfs-test pass" >> $RESULT_FILE
+ bluetooth_devices=$(ls -1 $BT_PATH)
+ if [ -z "$bluetooth_devices" ]; then
+ echo "bt-device-test fail" >> $RESULT_FILE
+ echo "No Bluetooth devices found."
+ else
+ echo "Bluetooth devices found:"
+ echo "bt-device-test pass" >> $RESULT_FILE
+ echo "$bluetooth_devices"
+ hciconfig_output=$(hciconfig)
+ if [[ $hciconfig_output == *"UP RUNNING"* ]]; then
+ echo "Bluetooth is active."
+ else
+ echo "Bluetooth is not active."
+ fi
+ fi
+ else
+ echo "bt-sysfs-test fail" >> $RESULT_FILE
+ echo "Bluetooth sysfs directory not found."
+ fi
+ echo ""
+}
+
+# Function to validate sound devices
+validate_sound() {
+ echo "=== Validating Sound Devices ==="
+ SOUND_PATH="/sys/class/sound/"
+ if [ -d "$SOUND_PATH" ]; then
+ echo "snd-sysfs-test pass" >> $RESULT_FILE
+ sound_devices=$(ls -1 $SOUND_PATH)
+ if [ -z "$sound_devices" ]; then
+ echo "snd-device-test fail" >> $RESULT_FILE
+ echo "No sound devices found."
+ else
+ echo "snd-device-test pass" >> $RESULT_FILE
+ echo "Sound devices found:"
+ echo "$sound_devices"
+ fi
+ echo "Checking default audio output..."
+ default_audio=$(aplay -l | grep -i 'card' | head -n 1)
+ if [ -z "$default_audio" ]; then
+ echo "No sound card detected."
+ else
+ echo "Default audio output detected: $default_audio"
+ fi
+ else
+ echo "snd-sysfs-test fail" >> $RESULT_FILE
+ echo "Sound sysfs directory not found."
+ fi
+ echo ""
+}
+
+# Function to validate display devices
+validate_display() {
+ echo "=== Validating Display Devices ==="
+ DISPLAY_PATH="/sys/class/drm/"
+ if [ -d "$DISPLAY_PATH" ]; then
+ echo "drm-sysfs-test pass" >> $RESULT_FILE
+ display_devices=$(ls -1 $DISPLAY_PATH | grep -E 'card[0-9]-')
+ if [ -z "$display_devices" ]; then
+ echo "drm-interface-test fail" >> $RESULT_FILE
+ echo "No display devices found."
+ else
+ echo "drm-interface-test pass" >> $RESULT_FILE
+ echo "Display devices found:"
+ echo "$display_devices"
+ fi
+ echo "Checking connected displays..."
+ xrandr_output=$(xrandr --listmonitors | grep 'Monitors')
+ if [ -n "$xrandr_output" ]; then
+ echo "Connected displays:"
+ xrandr --listmonitors | grep -v 'Monitors'
+ else
+ echo "No displays connected."
+ fi
+ else
+ echo "drm-sysfs-test fail" >> $RESULT_FILE
+ echo "Display sysfs directory not found."
+ fi
+ echo ""
+}
+
+# Main test suite runner
+run_tests() {
+ echo "Starting Peripheral Validation Test Suite..."
+
+ validate_usb_devices
+ validate_network_interfaces
+ validate_block_devices
+ validate_wifi
+ validate_bluetooth
+ validate_sound
+ validate_display
+
+ echo "Peripheral validation test suite complete."
+}
+
+# Run the test suite
+run_tests
diff --git a/automated/linux/peripherals/sysfs-interface-framework.yaml b/automated/linux/peripherals/sysfs-interface-framework.yaml
new file mode 100644
index 0000000..6c4f000
--- /dev/null
+++ b/automated/linux/peripherals/sysfs-interface-framework.yaml
@@ -0,0 +1,22 @@
+metadata:
+ format: Lava-Test Test Definition 1.0
+ name: module-tests
+ description: |
+ USB Gadget Framwork test
+ maintainer:
+ - anders.roxell@linaro.org
+ os:
+ - debian
+ - ubuntu
+ - openembedded
+ scope:
+ - functional
+ devices:
+ - rockpi4
+ - x86
+
+run:
+ steps:
+ - cd ./automated/linux/peripherals/
+ - ./sysfs-interface-framework.sh
+ - ../../utils/send-to-lava.sh ./output/result.txt