On Thu, Jun 15, 2023 at 3:44 AM Boqun Feng <boqun.feng@xxxxxxxxx> wrote: > > Great work! I've played this for a while, and it's really useful ;-) Thanks! > The assertion warning only says line 35 but which file? Yes, the > ".._sync_lock_spinlock_rs" name does provide the lead, however since we > generate the test code, so we actually know the line # for each real > test body, so I come up a way to give us the following: > > [..] # rust_doctest_kernel_sync_lock_spinlock_rs_0: ASSERTION FAILED at rust/kernel/sync/lock/spinlock.rs:61 > [..] Expected e.c == 11 to be true, but is false > [..] [FAILED] rust_doctest_kernel_sync_lock_spinlock_rs_0 > > Thoughts? Sounds good to me. However, David/Philip, is this OK or do you really need/use the actual/compiled source file there? If you don't need it, does it need to exist / be a real file at least? If the latter answer is a "yes", which I guess it may be likely, then: > + let src_file = format!("rust/kernel/{}", file.replace("_rs", ".rs").replace("_", "/")); This would not work for files with a `_` in their name, like `locked_by.rs`. I guess we could still find the real filename based on that information walking the dir, which is another hack I recall considering at some point. Otherwise, if "fake" filenames in the line above are OK for David/Philip (I suspect they may want to open them for reporting?), then I guess the `file` one may be good enough and eventually we should get `rustdoc` to give us the proper metadata anyway. Cheers, Miguel