|
1 | | -# tests |
2 | | -Placeholder for some tests being opened up to community |
| 1 | +Linux Feature Validation Scripts |
| 2 | + |
| 3 | +Overview |
| 4 | + |
| 5 | +This repository provides standalone test scripts aimed at functional validation of key Linux system features. |
| 6 | +It focuses on sanity, smoke, and functional testing for environments using Qualcomm kernels, meta-qcom, and meta-qcom-distros Yocto layers. |
| 7 | + |
| 8 | +These scripts are lightweight, extensible, and designed to integrate easily with CI/CD pipelines or run manually for system validation. |
| 9 | +The goal is to ensure critical Linux subsystems are operational and behave correctly. |
| 10 | + |
| 11 | + |
| 12 | +--- |
| 13 | + |
| 14 | +Key Features |
| 15 | + |
| 16 | +Standalone scripts — No dependency on specific frameworks. |
| 17 | + |
| 18 | +Functional validation of Linux features like: |
| 19 | + |
| 20 | +CPU Frequency Scaling |
| 21 | + |
| 22 | +Reboot health check |
| 23 | + |
| 24 | +Audio, USB, Sensors, Bluetooth, Wi-Fi, Camera, GPS, Ethernet, Touchscreen, Display, Power management, and more. |
| 25 | + |
| 26 | + |
| 27 | +Per-feature pass/fail reporting with detailed logs. |
| 28 | + |
| 29 | +Extensible — Scripts can be easily plugged into any CI/CD framework. |
| 30 | + |
| 31 | +Error Handling — Robust detection and logging of failures. |
| 32 | + |
| 33 | +Support for Yocto-based Systems — Especially with meta-qcom and meta-qcom-distros. |
| 34 | + |
| 35 | + |
| 36 | + |
| 37 | +--- |
| 38 | + |
| 39 | +Usage |
| 40 | + |
| 41 | +To run a specific test: |
| 42 | + |
| 43 | +./run-test.sh <testname> |
| 44 | + |
| 45 | +Where <testname> is the name of the test you want to run (example: cpufreq, reboot_health, etc). |
| 46 | + |
| 47 | +Example: |
| 48 | + |
| 49 | +./run-test.sh cpufreq |
| 50 | + |
| 51 | +The run-test.sh script will dynamically call the appropriate test script, handle basic setup, and consolidate test results. |
| 52 | + |
| 53 | + |
| 54 | +--- |
| 55 | + |
| 56 | +Folder Structure |
| 57 | + |
| 58 | +├── run-test.sh # Launcher script |
| 59 | +├── tests/ |
| 60 | +│ ├── cpufreq_test.sh # CPU frequency scaling validation |
| 61 | +│ ├── reboot_health.c # C program to validate reboot health |
| 62 | +│ ├── audio_test.sh # Audio validation script |
| 63 | +│ ├── usb_test.sh # USB validation script |
| 64 | +│ └── ... # Other feature validation scripts |
| 65 | +├── results/ |
| 66 | +│ ├── logs/ # Log files |
| 67 | +│ ├── summary.txt # Test summary (pass/fail per test) |
| 68 | +├── README.md # This file |
| 69 | +└── LICENSE |
| 70 | + |
| 71 | + |
| 72 | +--- |
| 73 | + |
| 74 | +Integrating with CI/CD |
| 75 | + |
| 76 | +Scripts are designed to be called independently. |
| 77 | + |
| 78 | +CI pipelines (like GitLab CI, Jenkins, GitHub Actions) can invoke run-test.sh with a specific test or loop through all available tests. |
| 79 | + |
| 80 | +Results can be collected from results/summary.txt and logs for reporting and visualization. |
| 81 | + |
| 82 | +Failures can automatically stop pipelines if configured. |
| 83 | + |
| 84 | + |
| 85 | +Example CI/CD Pseudocode: |
| 86 | + |
| 87 | +for test in cpufreq reboot_health audio_test usb_test; do |
| 88 | + ./run-test.sh $test || exit 1 |
| 89 | +done |
| 90 | + |
| 91 | + |
| 92 | +--- |
| 93 | + |
| 94 | +Extending the Framework |
| 95 | + |
| 96 | +Adding a new test: |
| 97 | + |
| 98 | +Write a new script inside the tests/ folder. |
| 99 | + |
| 100 | +Follow the simple pattern: initialize, run checks, output PASS or FAIL. |
| 101 | + |
| 102 | +Update run-test.sh if needed to add the mapping. |
| 103 | + |
| 104 | + |
| 105 | +Improving validations: |
| 106 | + |
| 107 | +Extend existing scripts with deeper corner case handling, stress tests, or coverage expansion. |
| 108 | + |
| 109 | + |
| 110 | + |
| 111 | + |
| 112 | +--- |
| 113 | + |
| 114 | +Requirements |
| 115 | + |
| 116 | +Basic Linux environment. |
| 117 | + |
| 118 | +Root (sudo) permissions (for accessing system files like /sys, /dev, etc). |
| 119 | + |
| 120 | +Compilers/tools installed on-device if needed for C programs (gcc). |
| 121 | + |
| 122 | + |
| 123 | + |
| 124 | +--- |
| 125 | + |
| 126 | +Targeted Platforms |
| 127 | + |
| 128 | +Qualcomm-based devices (Snapdragon SoCs, automotive, robotics platforms, etc). |
| 129 | + |
| 130 | +Yocto builds using meta-qcom, meta-qcom-distros. |
| 131 | + |
| 132 | +Other Linux distributions after basic compatibility validation. |
| 133 | + |
| 134 | + |
| 135 | + |
| 136 | +--- |
| 137 | + |
| 138 | +Contribution |
| 139 | + |
| 140 | +Feel free to open issues, suggest improvements, or submit pull requests if you wish to extend or improve the scripts for broader hardware coverage, kernel feature validation, or CI enhancements. |
0 commit comments