From fcc6d71be2c3ce7d9305c04fc2e87af554571bac Mon Sep 17 00:00:00 2001 From: Dmitry Vyukov Date: Mon, 22 Feb 2021 20:37:25 +0100 Subject: go.mod: update golangci-lint to v1.37 --- vendor/github.com/charithe/durationcheck/README.md | 48 ++++++++++++++++++++++ 1 file changed, 48 insertions(+) create mode 100644 vendor/github.com/charithe/durationcheck/README.md (limited to 'vendor/github.com/charithe/durationcheck/README.md') diff --git a/vendor/github.com/charithe/durationcheck/README.md b/vendor/github.com/charithe/durationcheck/README.md new file mode 100644 index 000000000..122edb745 --- /dev/null +++ b/vendor/github.com/charithe/durationcheck/README.md @@ -0,0 +1,48 @@ +[![CircleCI](https://circleci.com/gh/charithe/durationcheck.svg?style=svg)](https://circleci.com/gh/charithe/durationcheck) + + + +Duration Check +=============== + +A Go linter to detect cases where two `time.Duration` values are being multiplied in possibly erroneous ways. + +For example, consider the following (highly contrived) function: + +```go +func waitFor(someDuration time.Duration) { + timeToWait := someDuration * time.Second + time.Sleep(timeToWait) +} +``` + +Although the above code would compile without any errors, its runtime behaviour would almost certainly be incorrect. +A caller would reasonably expect `waitFor(5 * time.Seconds)` to wait for ~5 seconds but they would actually end up +waiting for ~1,388,889 hours. + +The above example is just for illustration purposes only. The problem is glaringly obvious in such a simple function +and even the greenest Gopher would discover the issue immediately. However, imagine a much more complicated function +with many more lines and it is not inconceivable that such logic errors could go unnoticed. + +See the [test cases](testdata/src/a/a.go) for more examples of the types of errors detected by the linter. + + +Installation +------------- + +Requires Go 1.11 or above. + +``` +go get -u github.com/charithe/durationcheck/cmd/durationcheck +``` + +Usage +----- + +Invoke `durationcheck` with your package name + +``` +durationcheck ./... +# or +durationcheck github.com/you/yourproject/... +``` -- cgit mrf-deployment