[pbs-devel] [PATCH proxmox-backup 03/23] maintenance: add 'Unpplugged' maintenance type
Lukas Wagner
l.wagner at proxmox.com
Thu Sep 21 10:16:32 CEST 2023
On 9/21/23 09:41, Hannes Laimer wrote:
>>
>> It's always advisable to have tests in separate submodule:
>>
>> #[cfg(test)]
>> mod tests {
>> use super::*;
>>
>> #[test]
>> fn test_check() {
>> ...
>> }
>> }
>>
>> This makes sure that the test(s) is/are not compiled during a normal
>> build :)
>>
> Correct me if I'm wrong but, AFAIK `#[test]` does that, and since this
> is the only and very simple test a whole mod thing seemed a bit
> overkill, so I stuck with just `#[test]`.
I stand corrected, you are indeed right. To quote [1]:
The test attribute marks a function to be executed as a test. These
functions are only compiled when in test mode.
Maybe I misremember some edge case where this was not the case, or maybe
it was the way I described some time ago and they changed it. TIL.
Anyway, I still think it is good practice to put tests in a separate
module, as it cleanly separates test code from production code. For a
single function this does not make much difference, but maybe somebody
else will add some more tests, extract common test setup code into
helpers, etc. - then they would need to touch the existing code anyway
and move it in a module. In other words, I think it's good to do it the
'clean' way right from the start. :)
[1] https://doc.rust-lang.org/reference/attributes/testing.html
--
- Lukas
More information about the pbs-devel
mailing list