Forum | Documentation | Website | Blog

Skip to content
Snippets Groups Projects
  • Miguel Ojeda's avatar
    rust: support running Rust documentation tests as KUnit ones · a66d733d
    Miguel Ojeda authored
    Rust has documentation tests: these are typically examples of
    usage of any item (e.g. function, struct, module...).
    
    They are very convenient because they are just written
    alongside the documentation. For instance:
    
        /// Sums two numbers.
        ///
        /// ```
        /// assert_eq!(mymod::f(10, 20), 30);
        /// ```
        pub fn f(a: i32, b: i32) -> i32 {
            a + b
        }
    
    In userspace, the tests are collected and run via `rustdoc`.
    Using the tool as-is would be useful already, since it allows
    to compile-test most tests (thus enforcing they are kept
    in sync with the code they document) and run those that do not
    depend on in-kernel APIs.
    
    However, by transforming the tests into a KUnit test suite,
    they can also be run inside the kernel. Moreover, the tests
    get to be compiled as other Rust kernel objects instead of
    targeting userspace.
    
    On top of that, the integration with KUnit means the Rust
    support gets to reuse the existing testing facilities. ...
    a66d733d