|
| 1 | +# Regression Test Suite |
| 2 | + |
| 3 | +Automated hardware-verified test suite for the P2 SD Card Driver. All 25 test suites (464 tests) execute on real Propeller 2 hardware with a physical SD card. |
| 4 | + |
| 5 | +## Running Tests |
| 6 | + |
| 7 | +From the `tools/` directory (one level above `src/`): |
| 8 | + |
| 9 | +```bash |
| 10 | +# Single suite |
| 11 | +./run_test.sh ../src/regression-tests/SD_RT_mount_tests.spin2 |
| 12 | + |
| 13 | +# Full regression (all 24 default suites, stop-on-failure) |
| 14 | +./run_regression.sh |
| 15 | + |
| 16 | +# Including format test (WARNING: erases card!) |
| 17 | +./run_regression.sh --include-format |
| 18 | +``` |
| 19 | + |
| 20 | +## Test Suites |
| 21 | + |
| 22 | +| Suite | Tests | Description | |
| 23 | +|-------|-------|-------------| |
| 24 | +| mount_tests | 29 | Card init, mount/unmount lifecycle | |
| 25 | +| file_ops_tests | 26 | Create, open, close, delete, rename | |
| 26 | +| read_write_tests | 48 | Data integrity, boundaries, large files | |
| 27 | +| seek_tests | 37 | Random access, cross-sector seeks | |
| 28 | +| directory_tests | 29 | Listing, navigation, deep nesting | |
| 29 | +| multihandle_tests | 21 | Concurrent file handles | |
| 30 | +| multicog_tests | 14 | Multi-cog concurrent access | |
| 31 | +| volume_tests | 31 | Volume label, free space, auto-flush, disk full | |
| 32 | +| dirhandle_tests | 25 | Directory handle enumeration | |
| 33 | +| subdir_ops_tests | 18 | Subdirectory file operations | |
| 34 | +| raw_sector_tests | 14 | Direct sector read/write | |
| 35 | +| multiblock_tests | 6 | Streamer DMA multi-block transfers | |
| 36 | +| register_tests | 10 | CID, CSD, SCR register access | |
| 37 | +| speed_tests | 15 | CMD6 high-speed mode | |
| 38 | +| crc_diag_tests | 14 | CRC counters and diagnostics | |
| 39 | +| crc_validation_tests | 6 | CRC error injection | |
| 40 | +| error_handling_tests | 14 | Error paths and misuse | |
| 41 | +| recovery_tests | 7 | Recovery after CRC errors | |
| 42 | +| fifo_tests | 21 | Inter-cog string FIFO | |
| 43 | +| cogcwd_tests | 5 | Per-cog working directory isolation | |
| 44 | +| stress_tests | 4 | Concurrent read/write stress | |
| 45 | +| timestamp_tests | 6 | Live clock timestamps | |
| 46 | +| async_tests | 6 | Non-blocking async I/O | |
| 47 | +| defrag_tests | 12 | Defragmentation, compaction, contiguous allocation | |
| 48 | +| format_tests | 46 | FAT32 format validation (optional, erases card) | |
| 49 | + |
| 50 | +## Prerequisites |
| 51 | + |
| 52 | +- **pnut-ts** and **pnut-term-ts** command-line tools |
| 53 | +- Parallax Propeller 2 connected via USB |
| 54 | +- FAT32-formatted SD card |
| 55 | + |
| 56 | +## Test Framework |
| 57 | + |
| 58 | +All tests use the shared `isp_rt_utilities.spin2` framework for assertions, guard zones, and pattern generation. |
| 59 | + |
| 60 | +--- |
| 61 | + |
| 62 | +*Part of the [P2 SD Card Driver](../README.md) package -- Iron Sheep Productions* |
0 commit comments