Amendments to Current Documentation and Testing Guidelines
Docs
Goal: Someone familiar with other modules in RAMCloud can:
use the module in expected ways without reading its source code
modify the code with reasonable time investment as supported by the docs
Changes:
Docs are now required at module boundaries only. Also, significant abstractions should have docs.
More emphasis on module-level docs and examples, less on boilerplate, redundant, and obvious text.
Make doxygen less anal so you can leave off params and return values that are obvious (within modules) or explained elsewhere (within modules or at module boundaries).
Tests
Goal: My peers would agree that the tests sufficiently show that the interesting paths of the module are correct.
Changes:
Black box tests are OK
We will maintain test isomorphism at the file level.
Tests that are not isomorphic at the module level are OK as long as there is a clear place for tests for any given line of code. All other things equal, isomorphism at the method level is preferred.
Skipping trivial statements is OK.