The clock package provides a generic API similar to `time` from Golang's standard library for a variety of time sources, such as a simulation clock that only steps forward when told, normal wall clock time, a clock that advances at a rate relative to another reference clock, or any layered combination of these.
clock/realtime itself shouldn't need much as it's a pretty thin wrapper over time (aside from Ticker- and Timer-related methods), and the rest should be well-covered by testing of clock/mocktime. clock/steppedtime and clock/relativetime do need more thorough testing, though clock/relativetime is similarly covered somewhat by testing of clock/mocktime. Most of these can liberally copy-paste test cases from the time standard library.
For package-level functions in mocktime, Timers and Tickers returned should provide access to their tick channel as a field instead of a method, for better use as a drop in replacement of time.
Current synchronization for most clock implementations is handled pretty crudely (generally with clock-wide locking) so this could probably be improved.