- Interfaces and utilities for modules to implement ConfTamer by logging the required information:
- CType methods (calls and corresponding CType parameters)
- Currently done by modules - eventually will be auto-generated on modules' behalf
- Sent and received API messages
- Currently done by module tests (often via a mock API client/server package)
- CType methods (calls and corresponding CType parameters)
- Program to parse these logs and produce the ConfTamer abstraction for the module that logged them.
Modules that implement ConfTamer (possibly via code generation tools and API clients/servers) must do the following:
- Implement the
CTypeinterface for each of their CTypes - Call
LogCTypesMethodEntry()andLogCTypesMethodExit()in each of their CTypes' methods- (These call
CTypemethods)
- (These call
- Call
LogAPIMessage()when sending or receiving an API message in a test
The module must implement ConfTamer as described above.
Then, find the module's CTypes, run its tests, and analyze the test results.
go build ./cmd/ctypes
go build ./cmd/parse
./ctypes --help
./parse --help
pkg: Libraries modules can import to implement ConfTamer