June 27, 2024

Presenter: Mark Johnston

Mark Johnston presented a session on bricoler, an in-depth look into a new tool designed to simplify and streamline testing and debugging processes for FreeBSD systems. He began by highlighting the challenges that FreeBSD developers often face, particularly new contributors who struggle with ensuring their patches do not break existing functionality. 

Johnston emphasized the need for a universal tool that could provide a standardized way to test changes, thereby increasing confidence in the code submitted. Bricoler is meant to make it very easy to run existing FreeBSD test suites, typically using virtual machines, providing a more accessible and efficient approach to testing for all developers.

bricoler was introduced as this much-needed solution. Johnston explained that bricoler aims to automate many tedious tasks involved in testing and debugging, significantly reducing the need for extensive setup. The tool supports running tests in parallel, which speeds up the testing process and allows for more comprehensive coverage in a shorter amount of time. This capability is crucial for maintaining the efficiency and reliability of FreeBSD development​​.

One of bricoler’s standout features is its ability to generate comprehensive reports that simplify the review of test results. Johnston demonstrated how bricoler could run regression tests, manage virtual machines, and attach debuggers to running virtual machine instances. Make showcased an example where a kernel panic was automatically detected and showed how to use bricoler to attach a debugger automatically, illustrating how the tool can save developers significant time and effort​​.

bricoler is designed to be versatile and supported in interactive development and continuous integration (CI) environments. Johnston highlighted how developers could use bricoler to run tests locally before pushing changes, ensuring issues are caught early in the development cycle. This feature aligns with the broader goal of improving FreeBSD’s overall quality and reliability by making rigorous testing more accessible and less time-consuming​​.

bricoler is written in Lua, providing a more structured and user-friendly scripting environment than traditional shell scripts​​. It is built with minimal dependencies and leverages a library called orch (with a small library of libc functions) to handle system calls and automate virtual machine interaction. Using Lua for system scripting tasks ensures that bricoler remains lightweight and easily integrated into existing workflows. 

Johnston encouraged the community to provide feedback and contribute to the development of Bricoler. He emphasized that the tool is still evolving, and user input will be invaluable in refining its features and functionality. Bricoler has the potential to transform how FreeBSD developers approach testing and debugging, making it an essential tool for the community and a promising advancement in FreeBSD’s development infrastructure. It aims to make testing more efficient, reliable, and accessible to all developers.