Skip to content

Commit 9a5ae51

Browse files
committed
Add comprehensive README for Linux feature validation framework This README outlines the purpose, usage, structure, and integration guidelines for the standalone Linux validation scripts targeting Qualcomm platforms,meta-qcom, and CI/CD workflows. Signed-off-by: <smuppand@qti.qualcomm.com>
Signed-off-by: smuppand <smuppand@qti.qualcomm.com>
1 parent 148ed60 commit 9a5ae51

1 file changed

Lines changed: 140 additions & 2 deletions

File tree

README.md

Lines changed: 140 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,2 +1,140 @@
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

Comments
 (0)