Rewrite pjdfstest suite
Student: Sayafdine Said (musikid@outlook.com)
Mentor: Alan Somers (asomers@freebsd.org)
Project description
This project aims to rewrite the pjdfstest suite. Today, the tests are written in a mix of shell script and C. This approach has provided some flexibility and usability, allowing to use syscalls within a shell environment. However, it also has disadvantages, the main ones being performance, code duplication and higher entry barrier for potential contributors. We want to improve the test suite, by switching to a unique language, Rust. Rust has numerous advantages, in particular, fearless multithreading, low-level handling and increased safety.
Approach to solving the problem
We want to write a Rust binary, which:
- is self-contained (embed all the tests),
- can execute all the tests (with the test runner),
- can filter according to conditions,
- is compatible with ATF.
The project will not rely on the Rust testing framework, therefore, we will need to do the test collection ourselves.
Deliverables
- Test collection
- Test runner
- Configuration file
Milestones
- 1st week (June 13)
- Iterate on the project’s design
- 2nd week - 4th week (June 20)
- Start implementing test collection
- 5th - 7th weeks (July 11)
- Implement test runner
- Start writing the tests
- Phase 1 evaluation period (July 25)
- 8th - 9th weeks (August 1)
- Continue writing the tests
- 10th - 12th weeks (August 15)
- Continue writing the tests
- For unexpected delay
- Implement test macros
- Add ATF support
- Add multithreading support
- 13th week - End (September 4)
- Document extensively
- For unexpected delay
The Code
https://github.com/musikid/pjdfstest
Weekly reports
Notes
Useful links
https://github.com/pjd/pjdfstest/issues/59
https://github.com/musikid/pytest-atf.git