Skip to content

Commit b9a1a51

Browse files
committed
docs: fstests: expand copy-results.sh documentation
The copy-results.sh script has been available for submitting test results to the community archive, but the documentation only briefly mentioned it without explaining how to use it or what it does. This expands docs/fstests.md with a comprehensive "Submitting results to the community archive" section that covers: - Prerequisites for setting up kdevops-results-archive with Git LFS - Detailed explanation of what the script does and how it organizes results - Directory structure breakdown ($USER/$FSTYP/$TYPE/YYYYMMDD-NNNN) - Complete workflow example from running tests to pushing results - Multiple runs per day support with sequential counters - Benefits of contributing to the archive - Troubleshooting common issues This makes it much easier for users to contribute their test results and help build comprehensive community baselines for kernel testing. Generated-by: Claude AI Signed-off-by: Luis Chamberlain <[email protected]>
1 parent 9ef5a5b commit b9a1a51

File tree

1 file changed

+111
-2
lines changed

1 file changed

+111
-2
lines changed

docs/fstests.md

Lines changed: 111 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -98,13 +98,122 @@ If you know these failures are real, you can commit them:
9898
It would be nice for you to commit back over results to our archive, specially
9999
if you are adding expunges for a kernel.
100100

101-
To do that do:
101+
## Submitting results to the community archive
102102

103-
bash
103+
kdevops maintains a community results archive at
104+
[kdevops-results-archive](https://github.com/linux-kdevops/kdevops-results-archive)
105+
to help track test baselines across different kernels, configurations, and
106+
environments. You can contribute your test results to help the community build
107+
confidence in kernel baselines.
108+
109+
### Prerequisites
110+
111+
1. Clone the results archive repository in the same parent directory as kdevops:
112+
113+
```bash
114+
cd .. # Go to parent directory of kdevops
115+
GIT_LFS_SKIP_SMUDGE=1 git clone https://github.com/linux-kdevops/kdevops-results-archive.git
116+
cd kdevops # Return to kdevops directory
117+
```
118+
119+
The `GIT_LFS_SKIP_SMUDGE=1` flag prevents downloading all result tarballs,
120+
saving significant bandwidth (results in a ~2.5M directory instead of 218M+).
121+
122+
2. Ensure you have run fstests and have results available:
123+
124+
```bash
125+
make fstests-baseline
126+
# or
127+
make fstests
104128
```
129+
130+
### Using copy-results.sh
131+
132+
The script automates copying your results to the archive with proper organization:
133+
134+
```bash
105135
scripts/workflows/fstests/copy-results.sh
106136
```
107137

138+
The script will:
139+
140+
1. **Detect your environment**: Automatically determines if you're using
141+
libvirt-qemu, cloud, or custom infrastructure
142+
143+
2. **Organize results**: Creates a directory structure following the pattern:
144+
```
145+
workflows/fstests/results/archive/$USER/$FSTYP/$TYPE/YYYYMMDD-NNNN/
146+
```
147+
Where:
148+
- `$USER`: Your username
149+
- `$FSTYP`: Filesystem type (xfs, ext4, btrfs, etc.)
150+
- `$TYPE`: Infrastructure type (libvirt-qemu, cloud, custom)
151+
- `YYYYMMDD`: Current date
152+
- `NNNN`: Sequential counter (0001, 0002, etc.) for multiple runs per day
153+
154+
3. **Copy files**: Places the following files in the archive:
155+
- `<kernel-version>.xz`: Compressed test results tarball
156+
- `kdevops.config`: Your kdevops configuration for reproducibility
157+
158+
4. **Stage for commit**: Automatically runs `git add` on the new files
159+
160+
### Example workflow
161+
162+
```bash
163+
# Run your fstests
164+
make fstests-baseline
165+
166+
# Copy results to archive
167+
scripts/workflows/fstests/copy-results.sh
168+
169+
# The script will output the commands it ran and show:
170+
# Filesystem: xfs
171+
# Kernel tested: 6.9.0-rc6
172+
#
173+
# Running:
174+
#
175+
# mkdir -p workflows/fstests/results/archive/jdoe/xfs/libvirt-qemu/20240505-0001
176+
# cp workflows/fstests/results/6.9.0-rc6.xz workflows/fstests/results/archive/...
177+
# cp .config workflows/fstests/results/archive/.../kdevops.config
178+
179+
# Now commit and push to the archive
180+
cd ../kdevops-results-archive
181+
git commit -a -s
182+
git push
183+
```
184+
185+
### Multiple runs per day
186+
187+
The script supports running multiple tests per day with different configurations
188+
(e.g., XFS with quota enabled vs disabled). Each run gets a unique counter:
189+
190+
```
191+
workflows/fstests/results/archive/jdoe/xfs/libvirt-qemu/20240505-0001/
192+
workflows/fstests/results/archive/jdoe/xfs/libvirt-qemu/20240505-0002/
193+
workflows/fstests/results/archive/jdoe/xfs/libvirt-qemu/20240505-0003/
194+
```
195+
196+
The script automatically increments the counter to avoid conflicts.
197+
198+
### Archive benefits
199+
200+
Results submitted to the archive:
201+
202+
- **Build community baselines**: Help establish known-good test results
203+
- **Track regressions**: Enable comparison across kernel versions
204+
- **Support CI/CD**: Automated dashboard generation at [kdevops.org](https://kdevops.org)
205+
- **Provide reproducibility**: Include configuration files for test recreation
206+
- **Use Git LFS**: Efficient storage and selective download of result tarballs
207+
208+
### Troubleshooting
209+
210+
If the script reports errors:
211+
212+
- **Missing archive**: Ensure `kdevops-results-archive` is cloned in the parent directory
213+
- **No results**: Run `make fstests` or `make fstests-baseline` first
214+
- **Missing files**: Verify `workflows/fstests/results/last-kernel.txt` exists and
215+
the corresponding `.xz` tarball is present
216+
108217
## Augment expunges for a kernel
109218

110219
If you know this is a real failure which we need to expunge the test so to

0 commit comments

Comments
 (0)