diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..a09c56d --- /dev/null +++ b/.gitignore @@ -0,0 +1 @@ +/.idea diff --git a/.golangci.yml b/.golangci.yml new file mode 100644 index 0000000..4988994 --- /dev/null +++ b/.golangci.yml @@ -0,0 +1,36 @@ +run: + deadline: 3m + +linters: + disable-all: true + enable: + - deadcode + - depguard + - dupl + - errcheck + - gochecknoinits + - goconst + - gocritic + - gocyclo + - gofmt + - goimports + - golint + - gosec + - gosimple + - govet + - ineffassign + - interfacer + - maligned + - megacheck + - misspell + - nakedret + - prealloc + - scopelint + - staticcheck + - structcheck + - stylecheck + - typecheck + - unconvert + - unparam + - unused + - varcheck diff --git a/.gometalinter.json b/.gometalinter.json deleted file mode 100644 index d84189c..0000000 --- a/.gometalinter.json +++ /dev/null @@ -1,35 +0,0 @@ -{ - "Vendor": true, - "MinConfidence": 0.3, - "DuplThreshold": 100, - "Deadline": "5m", - "LineLength": 150, - "Enable": [ - "deadcode", - "dupl", - "errcheck", - "goconst", - "gocyclo", - "goimports", - "gofmt", - "golint", - "gosec", - "gotype", - "gotypex", - "ineffassign", - "interfacer", - "lll", - "maligned", - "misspell", - "nakedret", - "safesql", - "structcheck", - "staticcheck", - "testify", - "unconvert", - "unparam", - "varcheck", - "vet", - "vetshadow" - ] -} diff --git a/.gometalinter_install.sh b/.gometalinter_install.sh deleted file mode 100755 index 4e08154..0000000 --- a/.gometalinter_install.sh +++ /dev/null @@ -1,406 +0,0 @@ -#!/bin/sh -set -e -# Code generated by godownloader on 2019-01-29T22:20:43Z. DO NOT EDIT. -# - -usage() { - this=$1 - cat </dev/null -} -echoerr() { - echo "$@" 1>&2 -} -log_prefix() { - echo "$0" -} -_logp=6 -log_set_priority() { - _logp="$1" -} -log_priority() { - if test -z "$1"; then - echo "$_logp" - return - fi - [ "$1" -le "$_logp" ] -} -log_tag() { - case $1 in - 0) echo "emerg" ;; - 1) echo "alert" ;; - 2) echo "crit" ;; - 3) echo "err" ;; - 4) echo "warning" ;; - 5) echo "notice" ;; - 6) echo "info" ;; - 7) echo "debug" ;; - *) echo "$1" ;; - esac -} -log_debug() { - log_priority 7 || return 0 - echoerr "$(log_prefix)" "$(log_tag 7)" "$@" -} -log_info() { - log_priority 6 || return 0 - echoerr "$(log_prefix)" "$(log_tag 6)" "$@" -} -log_err() { - log_priority 3 || return 0 - echoerr "$(log_prefix)" "$(log_tag 3)" "$@" -} -log_crit() { - log_priority 2 || return 0 - echoerr "$(log_prefix)" "$(log_tag 2)" "$@" -} -uname_os() { - os=$(uname -s | tr '[:upper:]' '[:lower:]') - case "$os" in - msys_nt) os="windows" ;; - esac - echo "$os" -} -uname_arch() { - arch=$(uname -m) - case $arch in - x86_64) arch="amd64" ;; - x86) arch="386" ;; - i686) arch="386" ;; - i386) arch="386" ;; - aarch64) arch="arm64" ;; - armv5*) arch="armv5" ;; - armv6*) arch="armv6" ;; - armv7*) arch="armv7" ;; - esac - echo ${arch} -} -uname_os_check() { - os=$(uname_os) - case "$os" in - darwin) return 0 ;; - dragonfly) return 0 ;; - freebsd) return 0 ;; - linux) return 0 ;; - android) return 0 ;; - nacl) return 0 ;; - netbsd) return 0 ;; - openbsd) return 0 ;; - plan9) return 0 ;; - solaris) return 0 ;; - windows) return 0 ;; - esac - log_crit "uname_os_check '$(uname -s)' got converted to '$os' which is not a GOOS value. Please file bug at https://github.com/client9/shlib" - return 1 -} -uname_arch_check() { - arch=$(uname_arch) - case "$arch" in - 386) return 0 ;; - amd64) return 0 ;; - arm64) return 0 ;; - armv5) return 0 ;; - armv6) return 0 ;; - armv7) return 0 ;; - ppc64) return 0 ;; - ppc64le) return 0 ;; - mips) return 0 ;; - mipsle) return 0 ;; - mips64) return 0 ;; - mips64le) return 0 ;; - s390x) return 0 ;; - amd64p32) return 0 ;; - esac - log_crit "uname_arch_check '$(uname -m)' got converted to '$arch' which is not a GOARCH value. Please file bug report at https://github.com/client9/shlib" - return 1 -} -untar() { - tarball=$1 - case "${tarball}" in - *.tar.gz | *.tgz) tar -xzf "${tarball}" ;; - *.tar) tar -xf "${tarball}" ;; - *.zip) unzip "${tarball}" ;; - *) - log_err "untar unknown archive format for ${tarball}" - return 1 - ;; - esac -} -mktmpdir() { - test -z "$TMPDIR" && TMPDIR="$(mktemp -d)" - mkdir -p "${TMPDIR}" - echo "${TMPDIR}" -} -http_download_curl() { - local_file=$1 - source_url=$2 - header=$3 - if [ -z "$header" ]; then - code=$(curl -w '%{http_code}' -sL -o "$local_file" "$source_url") - else - code=$(curl -w '%{http_code}' -sL -H "$header" -o "$local_file" "$source_url") - fi - if [ "$code" != "200" ]; then - log_debug "http_download_curl received HTTP status $code" - return 1 - fi - return 0 -} -http_download_wget() { - local_file=$1 - source_url=$2 - header=$3 - if [ -z "$header" ]; then - wget -q -O "$local_file" "$source_url" - else - wget -q --header "$header" -O "$local_file" "$source_url" - fi -} -http_download() { - log_debug "http_download $2" - if is_command curl; then - http_download_curl "$@" - return - elif is_command wget; then - http_download_wget "$@" - return - fi - log_crit "http_download unable to find wget or curl" - return 1 -} -http_copy() { - tmp=$(mktemp) - http_download "${tmp}" "$1" "$2" || return 1 - body=$(cat "$tmp") - rm -f "${tmp}" - echo "$body" -} -github_release() { - owner_repo=$1 - version=$2 - test -z "$version" && version="latest" - giturl="https://github.com/${owner_repo}/releases/${version}" - json=$(http_copy "$giturl" "Accept:application/json") - test -z "$json" && return 1 - version=$(echo "$json" | tr -s '\n' ' ' | sed 's/.*"tag_name":"//' | sed 's/".*//') - test -z "$version" && return 1 - echo "$version" -} -hash_sha256() { - TARGET=${1:-/dev/stdin} - if is_command gsha256sum; then - hash=$(gsha256sum "$TARGET") || return 1 - echo "$hash" | cut -d ' ' -f 1 - elif is_command sha256sum; then - hash=$(sha256sum "$TARGET") || return 1 - echo "$hash" | cut -d ' ' -f 1 - elif is_command shasum; then - hash=$(shasum -a 256 "$TARGET" 2>/dev/null) || return 1 - echo "$hash" | cut -d ' ' -f 1 - elif is_command openssl; then - hash=$(openssl -dst openssl dgst -sha256 "$TARGET") || return 1 - echo "$hash" | cut -d ' ' -f a - else - log_crit "hash_sha256 unable to find command to compute sha-256 hash" - return 1 - fi -} -hash_sha256_verify() { - TARGET=$1 - checksums=$2 - if [ -z "$checksums" ]; then - log_err "hash_sha256_verify checksum file not specified in arg2" - return 1 - fi - BASENAME=${TARGET##*/} - want=$(grep "${BASENAME}" "${checksums}" 2>/dev/null | tr '\t' ' ' | cut -d ' ' -f 1) - if [ -z "$want" ]; then - log_err "hash_sha256_verify unable to find checksum for '${TARGET}' in '${checksums}'" - return 1 - fi - got=$(hash_sha256 "$TARGET") - if [ "$want" != "$got" ]; then - log_err "hash_sha256_verify checksum for '$TARGET' did not verify ${want} vs $got" - return 1 - fi -} -cat /dev/null < 0 at this point. We have to roll our window forward diff --git a/faststats/rolling_counter_test.go b/faststats/rolling_counter_test.go index 4ed6b3b..94b8992 100644 --- a/faststats/rolling_counter_test.go +++ b/faststats/rolling_counter_test.go @@ -97,8 +97,10 @@ func BenchmarkRollingCounter(b *testing.B) { }, } for _, run := range runs { + run := run b.Run(run.name, func(b *testing.B) { for _, concurrent := range concurrents { + concurrent := concurrent b.Run(strconv.Itoa(concurrent), func(b *testing.B) { now := time.Now() x := NewRollingCounter(run.bucketSize, run.numBuckets, now) @@ -195,8 +197,8 @@ func expectBuckets(t *testing.T, now time.Time, in *RollingCounter, b []int64) { if len(a) != len(b) { t.Fatalf("Len not right: %d vs %d", len(a), len(b)) } - var p1 []string - var p2 []string + p1 := make([]string, 0, len(b)) + p2 := make([]string, 0, len(b)) for i := range b { p1 = append(p1, strconv.FormatInt(a[i], 10)) p2 = append(p2, strconv.FormatInt(b[i], 10)) diff --git a/metrics/responsetimeslo/example_test.go b/metrics/responsetimeslo/example_test.go index 3d55d76..218af26 100644 --- a/metrics/responsetimeslo/example_test.go +++ b/metrics/responsetimeslo/example_test.go @@ -21,6 +21,6 @@ func ExampleFactory() { h := circuit.Manager{ DefaultCircuitProperties: []circuit.CommandPropertiesConstructor{sloTrackerFactory.CommandProperties}, } - h.CreateCircuit("circuit-with-slo") + h.MustCreateCircuit("circuit-with-slo") // Output: } diff --git a/metrics/statsdmetrics/statsd.go b/metrics/statsdmetrics/statsd.go index f355e1b..ec0dbcd 100644 --- a/metrics/statsdmetrics/statsd.go +++ b/metrics/statsdmetrics/statsd.go @@ -74,7 +74,7 @@ func appendStatsdParts(sanitizeStatsdFunction func(name string) string, parts .. for _, part := range parts { part = sanitizeStatsdFunction(part) part = strings.Trim(part, ".") - if len(part) <= 0 { + if len(part) == 0 { continue } nonEmpty = append(nonEmpty, part)