From 9146268788772c4697ffa5aeac592d8db4804715 Mon Sep 17 00:00:00 2001 From: Fernandez Ludovic Date: Mon, 27 May 2024 23:20:01 +0200 Subject: [PATCH 1/9] dev: add targets to benchmark a linter --- Makefile | 14 +++++++++++++ scripts/bench/bench_local.sh | 31 ++++++++++++++++++++++++++++ scripts/bench/bench_version.sh | 37 ++++++++++++++++++++++++++++++++++ scripts/bench/readme.md | 15 ++++++++++++++ 4 files changed, 97 insertions(+) create mode 100755 scripts/bench/bench_local.sh create mode 100755 scripts/bench/bench_version.sh create mode 100644 scripts/bench/readme.md diff --git a/Makefile b/Makefile index b19cea7fd431..e5ed140170f3 100644 --- a/Makefile +++ b/Makefile @@ -60,6 +60,20 @@ fast_check_generated: git checkout -- go.mod go.sum # can differ between go1.16 and go1.17 git diff --exit-code # check no changes +# Benchmark + +# Benchmark with a local version +# LINTER=gosec VERSION=v1.59.0 make bench_local +bench_local: + ./scripts/bench/bench_local.sh $(LINTER) $(VERSION) +.PHONY: bench_local + +# Benchmark between 2 existing versions +# LINTER=gosec VERSION_OLD=v1.58.2 VERSION_NEW=v1.59.0 make bench_version +bench_version: + ./scripts/bench/bench_version.sh $(LINTER) $(VERSION_OLD) $(VERSION_NEW) +.PHONY: bench_version + # Non-PHONY targets (real files) $(BINARY): FORCE diff --git a/scripts/bench/bench_local.sh b/scripts/bench/bench_local.sh new file mode 100755 index 000000000000..a6007bc8dd35 --- /dev/null +++ b/scripts/bench/bench_local.sh @@ -0,0 +1,31 @@ +#!/bin/bash -e + +# Benchmark with a local version +# Usage: ./scripts/bench/bench_local.sh gosec v1.59.0 + +# ex: gosec +LINTER_NAME=$1 + +# ex: v1.59.0 +GCIL_VERSION=$2 + +## Download version + +curl -sSfL https://raw.githubusercontent.com/golangci/golangci-lint/master/install.sh | sh -s -- -b ./temp-${GCIL_VERSION}/ ${GCIL_VERSION} + +mv temp-${GCIL_VERSION}/golangci-lint ./golangci-lint-${GCIL_VERSION} +rm -rf temp-${GCIL_VERSION} + +## Build local version + +make build + +## Run + +hyperfine \ +--prepare 'golangci-lint cache clean' "./golangci-lint run --print-issued-lines=false --enable-only ${LINTER_NAME}" \ +--prepare './golangci-lint cache clean' "./golangci-lint-${GCIL_VERSION} run --print-issued-lines=false --enable-only ${LINTER_NAME}" + +## Clean + +rm ./golangci-lint-${GCIL_VERSION} diff --git a/scripts/bench/bench_version.sh b/scripts/bench/bench_version.sh new file mode 100755 index 000000000000..3b341ea6057e --- /dev/null +++ b/scripts/bench/bench_version.sh @@ -0,0 +1,37 @@ +#!/bin/bash -e + +# Benchmark between 2 existing versions +# Usage: ./scripts/bench/bench_version.sh gosec v1.58.1 v1.58.2 + +# ex: gosec +LINTER_NAME=$1 + +# ex: v1.58.1 +GCIL_VERSION_ONE=$2 +# ex: v1.58.2 +GCIL_VERSION_TWO=$3 + +## GCIL_VERSION_ONE + +curl -sSfL https://raw.githubusercontent.com/golangci/golangci-lint/master/install.sh | sh -s -- -b ./temp-${GCIL_VERSION_ONE} ${GCIL_VERSION_ONE} + +mv temp-${GCIL_VERSION_ONE}/golangci-lint ./golangci-lint-${GCIL_VERSION_ONE} +rm -rf temp-${GCIL_VERSION_ONE} + +## GCIL_VERSION_TWO + +curl -sSfL https://raw.githubusercontent.com/golangci/golangci-lint/master/install.sh | sh -s -- -b ./temp-${GCIL_VERSION_TWO} ${GCIL_VERSION_TWO} + +mv temp-${GCIL_VERSION_TWO}/golangci-lint ./golangci-lint-${GCIL_VERSION_TWO} +rm -rf temp-${GCIL_VERSION_TWO} + +## Run + +hyperfine \ +--prepare 'golangci-lint cache clean' "./golangci-lint-${GCIL_VERSION_ONE} run --issues-exit-code 0 --print-issued-lines=false --enable-only ${LINTER_NAME}" \ +--prepare './golangci-lint cache clean' "./golangci-lint-${GCIL_VERSION_TWO} run --issues-exit-code 0 --print-issued-lines=false --enable-only ${LINTER_NAME}" + +## Clean + +rm ./golangci-lint-${GCIL_VERSION_ONE} +rm ./golangci-lint-${GCIL_VERSION_TWO} diff --git a/scripts/bench/readme.md b/scripts/bench/readme.md new file mode 100644 index 000000000000..68e58a2536da --- /dev/null +++ b/scripts/bench/readme.md @@ -0,0 +1,15 @@ +# Benchmarks + +The script use [Hyperfine](https://github.com/sharkdp/hyperfine) to benchmark the command line of golangci-lint. + +## Benchmark one linter: with a local version + +```bash +LINTER=gosec VERSION=v1.59.0 make bench_local +``` + +## Benchmark one linter: between 2 existing versions + +```bash +LINTER=gosec VERSION_OLD=v1.58.2 VERSION_NEW=v1.59.0 make bench_version +``` From ce82ab8408e1056d0ad116a56fee71b71755e2c5 Mon Sep 17 00:00:00 2001 From: Fernandez Ludovic Date: Mon, 27 May 2024 23:44:42 +0200 Subject: [PATCH 2/9] dev: naming and trap --- scripts/bench/bench_local.sh | 26 ++++++++++++++------- scripts/bench/bench_version.sh | 41 +++++++++++++++++++--------------- 2 files changed, 41 insertions(+), 26 deletions(-) diff --git a/scripts/bench/bench_local.sh b/scripts/bench/bench_local.sh index a6007bc8dd35..e2246ad116d8 100755 --- a/scripts/bench/bench_local.sh +++ b/scripts/bench/bench_local.sh @@ -4,17 +4,27 @@ # Usage: ./scripts/bench/bench_local.sh gosec v1.59.0 # ex: gosec -LINTER_NAME=$1 +LINTER=$1 # ex: v1.59.0 -GCIL_VERSION=$2 +VERSION=$2 + +## Clean + +function cleanBinaries() { + echo "Clean binaries" + rm ./golangci-lint-${VERSION} + rm ./golangci-lint +} + +trap cleanBinaries EXIT ## Download version -curl -sSfL https://raw.githubusercontent.com/golangci/golangci-lint/master/install.sh | sh -s -- -b ./temp-${GCIL_VERSION}/ ${GCIL_VERSION} +curl -sSfL https://raw.githubusercontent.com/golangci/golangci-lint/master/install.sh | sh -s -- -b ./temp-${VERSION}/ ${VERSION} -mv temp-${GCIL_VERSION}/golangci-lint ./golangci-lint-${GCIL_VERSION} -rm -rf temp-${GCIL_VERSION} +mv temp-${VERSION}/golangci-lint ./golangci-lint-${VERSION} +rm -rf temp-${VERSION} ## Build local version @@ -23,9 +33,9 @@ make build ## Run hyperfine \ ---prepare 'golangci-lint cache clean' "./golangci-lint run --print-issued-lines=false --enable-only ${LINTER_NAME}" \ ---prepare './golangci-lint cache clean' "./golangci-lint-${GCIL_VERSION} run --print-issued-lines=false --enable-only ${LINTER_NAME}" +--prepare 'golangci-lint cache clean' "./golangci-lint run --print-issued-lines=false --enable-only ${LINTER}" \ +--prepare './golangci-lint cache clean' "./golangci-lint-${VERSION} run --print-issued-lines=false --enable-only ${LINTER}" ## Clean -rm ./golangci-lint-${GCIL_VERSION} +rm ./golangci-lint-${VERSION} diff --git a/scripts/bench/bench_version.sh b/scripts/bench/bench_version.sh index 3b341ea6057e..dfcad588fd2f 100755 --- a/scripts/bench/bench_version.sh +++ b/scripts/bench/bench_version.sh @@ -4,34 +4,39 @@ # Usage: ./scripts/bench/bench_version.sh gosec v1.58.1 v1.58.2 # ex: gosec -LINTER_NAME=$1 +LINTER="$1" # ex: v1.58.1 -GCIL_VERSION_ONE=$2 +VERSION_OLD="$2" # ex: v1.58.2 -GCIL_VERSION_TWO=$3 +VERSION_NEW="$3" -## GCIL_VERSION_ONE +## Clean -curl -sSfL https://raw.githubusercontent.com/golangci/golangci-lint/master/install.sh | sh -s -- -b ./temp-${GCIL_VERSION_ONE} ${GCIL_VERSION_ONE} +function cleanBinaries() { + echo "Clean binaries" + rm ./golangci-lint-${VERSION_OLD} + rm ./golangci-lint-${VERSION_NEW} +} -mv temp-${GCIL_VERSION_ONE}/golangci-lint ./golangci-lint-${GCIL_VERSION_ONE} -rm -rf temp-${GCIL_VERSION_ONE} +trap cleanBinaries EXIT -## GCIL_VERSION_TWO +## VERSION_OLD -curl -sSfL https://raw.githubusercontent.com/golangci/golangci-lint/master/install.sh | sh -s -- -b ./temp-${GCIL_VERSION_TWO} ${GCIL_VERSION_TWO} +curl -sSfL https://raw.githubusercontent.com/golangci/golangci-lint/master/install.sh | sh -s -- -b ./temp-${VERSION_OLD} ${VERSION_OLD} -mv temp-${GCIL_VERSION_TWO}/golangci-lint ./golangci-lint-${GCIL_VERSION_TWO} -rm -rf temp-${GCIL_VERSION_TWO} +mv temp-${VERSION_OLD}/golangci-lint ./golangci-lint-${VERSION_OLD} +rm -rf temp-${VERSION_OLD} -## Run +## VERSION_NEW -hyperfine \ ---prepare 'golangci-lint cache clean' "./golangci-lint-${GCIL_VERSION_ONE} run --issues-exit-code 0 --print-issued-lines=false --enable-only ${LINTER_NAME}" \ ---prepare './golangci-lint cache clean' "./golangci-lint-${GCIL_VERSION_TWO} run --issues-exit-code 0 --print-issued-lines=false --enable-only ${LINTER_NAME}" +curl -sSfL https://raw.githubusercontent.com/golangci/golangci-lint/master/install.sh | sh -s -- -b ./temp-${VERSION_NEW} ${VERSION_NEW} -## Clean +mv temp-${VERSION_NEW}/golangci-lint ./golangci-lint-${VERSION_NEW} +rm -rf temp-${VERSION_NEW} -rm ./golangci-lint-${GCIL_VERSION_ONE} -rm ./golangci-lint-${GCIL_VERSION_TWO} +## Run + +hyperfine \ +--prepare 'golangci-lint cache clean' "./golangci-lint-${VERSION_OLD} run --issues-exit-code 0 --print-issued-lines=false --enable-only ${LINTER}" \ +--prepare './golangci-lint cache clean' "./golangci-lint-${VERSION_NEW} run --issues-exit-code 0 --print-issued-lines=false --enable-only ${LINTER}" From df7011b928e3564c37cebb0f077a0ce8d0e10ec8 Mon Sep 17 00:00:00 2001 From: Fernandez Ludovic Date: Mon, 27 May 2024 23:51:25 +0200 Subject: [PATCH 3/9] dev: linting and factorization --- scripts/bench/bench_local.sh | 10 +++++----- scripts/bench/bench_version.sh | 25 +++++++++++++++---------- 2 files changed, 20 insertions(+), 15 deletions(-) diff --git a/scripts/bench/bench_local.sh b/scripts/bench/bench_local.sh index e2246ad116d8..52700333e175 100755 --- a/scripts/bench/bench_local.sh +++ b/scripts/bench/bench_local.sh @@ -13,7 +13,7 @@ VERSION=$2 function cleanBinaries() { echo "Clean binaries" - rm ./golangci-lint-${VERSION} + rm "./golangci-lint-${VERSION}" rm ./golangci-lint } @@ -21,10 +21,10 @@ trap cleanBinaries EXIT ## Download version -curl -sSfL https://raw.githubusercontent.com/golangci/golangci-lint/master/install.sh | sh -s -- -b ./temp-${VERSION}/ ${VERSION} +curl -sSfL https://raw.githubusercontent.com/golangci/golangci-lint/master/install.sh | sh -s -- -b "./temp-${VERSION}" "${VERSION}" -mv temp-${VERSION}/golangci-lint ./golangci-lint-${VERSION} -rm -rf temp-${VERSION} +mv "temp-${VERSION}/golangci-lint" "./golangci-lint-${VERSION}" +rm -rf "temp-${VERSION}" ## Build local version @@ -38,4 +38,4 @@ hyperfine \ ## Clean -rm ./golangci-lint-${VERSION} +rm "./golangci-lint-${VERSION}" diff --git a/scripts/bench/bench_version.sh b/scripts/bench/bench_version.sh index dfcad588fd2f..044779a4d77f 100755 --- a/scripts/bench/bench_version.sh +++ b/scripts/bench/bench_version.sh @@ -15,25 +15,30 @@ VERSION_NEW="$3" function cleanBinaries() { echo "Clean binaries" - rm ./golangci-lint-${VERSION_OLD} - rm ./golangci-lint-${VERSION_NEW} + rm "./golangci-lint-${VERSION_OLD}" + rm "./golangci-lint-${VERSION_NEW}" } trap cleanBinaries EXIT -## VERSION_OLD +## Install -curl -sSfL https://raw.githubusercontent.com/golangci/golangci-lint/master/install.sh | sh -s -- -b ./temp-${VERSION_OLD} ${VERSION_OLD} +function install() { + local VERSION=$1 -mv temp-${VERSION_OLD}/golangci-lint ./golangci-lint-${VERSION_OLD} -rm -rf temp-${VERSION_OLD} + curl -sSfL https://raw.githubusercontent.com/golangci/golangci-lint/master/install.sh | sh -s -- -b "./temp-${VERSION}" "${VERSION}" -## VERSION_NEW + mv "temp-${VERSION}/golangci-lint" "./golangci-lint-${VERSION}" + rm -rf "temp-${VERSION}" +} -curl -sSfL https://raw.githubusercontent.com/golangci/golangci-lint/master/install.sh | sh -s -- -b ./temp-${VERSION_NEW} ${VERSION_NEW} +## VERSION_OLD + +install "${VERSION_OLD}" + +## VERSION_NEW -mv temp-${VERSION_NEW}/golangci-lint ./golangci-lint-${VERSION_NEW} -rm -rf temp-${VERSION_NEW} +install "${VERSION_NEW}" ## Run From b873a36f9282aad04eae6ac82596ffe3501d1e84 Mon Sep 17 00:00:00 2001 From: Fernandez Ludovic Date: Tue, 28 May 2024 00:01:37 +0200 Subject: [PATCH 4/9] dev: fix prepare --- scripts/bench/bench_local.sh | 4 ++-- scripts/bench/bench_version.sh | 4 ++-- scripts/bench/readme.md | 2 +- 3 files changed, 5 insertions(+), 5 deletions(-) diff --git a/scripts/bench/bench_local.sh b/scripts/bench/bench_local.sh index 52700333e175..350d21fd0c75 100755 --- a/scripts/bench/bench_local.sh +++ b/scripts/bench/bench_local.sh @@ -33,8 +33,8 @@ make build ## Run hyperfine \ ---prepare 'golangci-lint cache clean' "./golangci-lint run --print-issued-lines=false --enable-only ${LINTER}" \ ---prepare './golangci-lint cache clean' "./golangci-lint-${VERSION} run --print-issued-lines=false --enable-only ${LINTER}" +--prepare './golangci-lint cache clean' "./golangci-lint run --issues-exit-code 0 --print-issued-lines=false --enable-only ${LINTER}" \ +--prepare "./golangci-lint-${VERSION} cache clean" "./golangci-lint-${VERSION} run --issues-exit-code 0 --print-issued-lines=false --enable-only ${LINTER}" ## Clean diff --git a/scripts/bench/bench_version.sh b/scripts/bench/bench_version.sh index 044779a4d77f..3bb1b4dfd9aa 100755 --- a/scripts/bench/bench_version.sh +++ b/scripts/bench/bench_version.sh @@ -43,5 +43,5 @@ install "${VERSION_NEW}" ## Run hyperfine \ ---prepare 'golangci-lint cache clean' "./golangci-lint-${VERSION_OLD} run --issues-exit-code 0 --print-issued-lines=false --enable-only ${LINTER}" \ ---prepare './golangci-lint cache clean' "./golangci-lint-${VERSION_NEW} run --issues-exit-code 0 --print-issued-lines=false --enable-only ${LINTER}" +--prepare "./golangci-lint-${VERSION_OLD} cache clean" "./golangci-lint-${VERSION_OLD} run --issues-exit-code 0 --print-issued-lines=false --enable-only ${LINTER}" \ +--prepare "./golangci-lint-${VERSION_NEW} cache clean" "./golangci-lint-${VERSION_NEW} run --issues-exit-code 0 --print-issued-lines=false --enable-only ${LINTER}" diff --git a/scripts/bench/readme.md b/scripts/bench/readme.md index 68e58a2536da..945395543f15 100644 --- a/scripts/bench/readme.md +++ b/scripts/bench/readme.md @@ -11,5 +11,5 @@ LINTER=gosec VERSION=v1.59.0 make bench_local ## Benchmark one linter: between 2 existing versions ```bash -LINTER=gosec VERSION_OLD=v1.58.2 VERSION_NEW=v1.59.0 make bench_version +LINTER=gosec VERSION_OLD=v1.58.1 VERSION_NEW=v1.59.0 make bench_version ``` From 85447910562bd90fd1857a66a3d3e1f81beb9037 Mon Sep 17 00:00:00 2001 From: Fernandez Ludovic Date: Tue, 28 May 2024 00:15:31 +0200 Subject: [PATCH 5/9] dev: hide the script calls --- Makefile | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/Makefile b/Makefile index e5ed140170f3..e2efc51c48fd 100644 --- a/Makefile +++ b/Makefile @@ -65,13 +65,13 @@ fast_check_generated: # Benchmark with a local version # LINTER=gosec VERSION=v1.59.0 make bench_local bench_local: - ./scripts/bench/bench_local.sh $(LINTER) $(VERSION) + @./scripts/bench/bench_local.sh $(LINTER) $(VERSION) .PHONY: bench_local # Benchmark between 2 existing versions # LINTER=gosec VERSION_OLD=v1.58.2 VERSION_NEW=v1.59.0 make bench_version bench_version: - ./scripts/bench/bench_version.sh $(LINTER) $(VERSION_OLD) $(VERSION_NEW) + @./scripts/bench/bench_version.sh $(LINTER) $(VERSION_OLD) $(VERSION_NEW) .PHONY: bench_version # Non-PHONY targets (real files) From 34a0e3e9a8c3adefa835d38f554996b0d71e9c27 Mon Sep 17 00:00:00 2001 From: Fernandez Ludovic Date: Tue, 28 May 2024 15:29:00 +0200 Subject: [PATCH 6/9] review: check hyperfine installation --- Makefile | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/Makefile b/Makefile index e2efc51c48fd..6b4b79077c15 100644 --- a/Makefile +++ b/Makefile @@ -64,16 +64,20 @@ fast_check_generated: # Benchmark with a local version # LINTER=gosec VERSION=v1.59.0 make bench_local -bench_local: +bench_local: hyperfine @./scripts/bench/bench_local.sh $(LINTER) $(VERSION) .PHONY: bench_local # Benchmark between 2 existing versions # LINTER=gosec VERSION_OLD=v1.58.2 VERSION_NEW=v1.59.0 make bench_version -bench_version: +bench_version: hyperfine @./scripts/bench/bench_version.sh $(LINTER) $(VERSION_OLD) $(VERSION_NEW) .PHONY: bench_version +hyperfine: + @which hyperfines > /dev/null || (echo "Please install hyperfine https://github.com/sharkdp/hyperfine#installation" && exit 1) +.PHONY: hyperfine + # Non-PHONY targets (real files) $(BINARY): FORCE From 314611b6a31be864b47c623d4764118f31a5f012 Mon Sep 17 00:00:00 2001 From: Ludovic Fernandez Date: Tue, 28 May 2024 16:29:50 +0200 Subject: [PATCH 7/9] review Co-authored-by: Oleksandr Redko --- Makefile | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Makefile b/Makefile index 6b4b79077c15..496fa629cb92 100644 --- a/Makefile +++ b/Makefile @@ -75,7 +75,7 @@ bench_version: hyperfine .PHONY: bench_version hyperfine: - @which hyperfines > /dev/null || (echo "Please install hyperfine https://github.com/sharkdp/hyperfine#installation" && exit 1) + @which hyperfine > /dev/null || (echo "Please install hyperfine https://github.com/sharkdp/hyperfine#installation" && exit 1) .PHONY: hyperfine # Non-PHONY targets (real files) From 467e7accfb1bc4e8824d2e6f6312f60ffb7ee9e2 Mon Sep 17 00:00:00 2001 From: Fernandez Ludovic Date: Tue, 28 May 2024 16:57:05 +0200 Subject: [PATCH 8/9] review: check parameters --- Makefile | 20 +++++++++++++++++++- scripts/bench/bench_local.sh | 3 --- scripts/bench/readme.md | 4 ++-- 3 files changed, 21 insertions(+), 6 deletions(-) diff --git a/Makefile b/Makefile index 496fa629cb92..657cf7e3f61d 100644 --- a/Makefile +++ b/Makefile @@ -65,12 +65,14 @@ fast_check_generated: # Benchmark with a local version # LINTER=gosec VERSION=v1.59.0 make bench_local bench_local: hyperfine + @:$(call check_defined, LINTER VERSION, 'missing parameter(s)') @./scripts/bench/bench_local.sh $(LINTER) $(VERSION) .PHONY: bench_local # Benchmark between 2 existing versions -# LINTER=gosec VERSION_OLD=v1.58.2 VERSION_NEW=v1.59.0 make bench_version +# make bench_version LINTER=gosec VERSION_OLD=v1.58.2 VERSION_NEW=v1.59.0 bench_version: hyperfine + @:$(call check_defined, LINTER VERSION_OLD VERSION_NEW, 'missing parameter(s)') @./scripts/bench/bench_version.sh $(LINTER) $(VERSION_OLD) $(VERSION_NEW) .PHONY: bench_version @@ -120,3 +122,19 @@ website_dump_info: update_contributors_list: cd .github/contributors && npm run all +# Functions + +# Check that given variables are set and all have non-empty values, +# die with an error otherwise. +# +# Params: +# 1. Variable name(s) to test. +# 2. (optional) Error message to print. +# +# https://stackoverflow.com/a/10858332/8228109 +check_defined = \ + $(strip $(foreach 1,$1, \ + $(call __check_defined,$1,$(strip $(value 2))))) +__check_defined = \ + $(if $(value $1),, \ + $(error Undefined $1$(if $2, ($2)))) diff --git a/scripts/bench/bench_local.sh b/scripts/bench/bench_local.sh index 350d21fd0c75..e2f22b406e46 100755 --- a/scripts/bench/bench_local.sh +++ b/scripts/bench/bench_local.sh @@ -36,6 +36,3 @@ hyperfine \ --prepare './golangci-lint cache clean' "./golangci-lint run --issues-exit-code 0 --print-issued-lines=false --enable-only ${LINTER}" \ --prepare "./golangci-lint-${VERSION} cache clean" "./golangci-lint-${VERSION} run --issues-exit-code 0 --print-issued-lines=false --enable-only ${LINTER}" -## Clean - -rm "./golangci-lint-${VERSION}" diff --git a/scripts/bench/readme.md b/scripts/bench/readme.md index 945395543f15..16855f2b30bb 100644 --- a/scripts/bench/readme.md +++ b/scripts/bench/readme.md @@ -5,11 +5,11 @@ The script use [Hyperfine](https://github.com/sharkdp/hyperfine) to benchmark th ## Benchmark one linter: with a local version ```bash -LINTER=gosec VERSION=v1.59.0 make bench_local +make bench_local LINTER=gosec VERSION=v1.59.0 ``` ## Benchmark one linter: between 2 existing versions ```bash -LINTER=gosec VERSION_OLD=v1.58.1 VERSION_NEW=v1.59.0 make bench_version +make bench_version LINTER=gosec VERSION_OLD=v1.58.1 VERSION_NEW=v1.59.0 ``` From 8e2355624d616baecdc02815525ab34439e30aa4 Mon Sep 17 00:00:00 2001 From: Fernandez Ludovic Date: Tue, 28 May 2024 19:02:57 +0200 Subject: [PATCH 9/9] review: be protected against everything --- scripts/bench/bench_local.sh | 14 ++++++++++++++ scripts/bench/bench_version.sh | 13 +++++++++++++ 2 files changed, 27 insertions(+) diff --git a/scripts/bench/bench_local.sh b/scripts/bench/bench_local.sh index e2f22b406e46..52859028416c 100755 --- a/scripts/bench/bench_local.sh +++ b/scripts/bench/bench_local.sh @@ -9,6 +9,20 @@ LINTER=$1 # ex: v1.59.0 VERSION=$2 + +if [ -z "$LINTER" ] || [ -z "$VERSION" ]; then + cat <<-EOF +Missing required arguments! + +Usage: $0 +Example: $0 gosec v1.58.1 v1.58.2 +EOF + + exit 1 +fi + +EOF + ## Clean function cleanBinaries() { diff --git a/scripts/bench/bench_version.sh b/scripts/bench/bench_version.sh index 3bb1b4dfd9aa..a18ae2369b38 100755 --- a/scripts/bench/bench_version.sh +++ b/scripts/bench/bench_version.sh @@ -11,6 +11,19 @@ VERSION_OLD="$2" # ex: v1.58.2 VERSION_NEW="$3" +if [ -z "$LINTER" ] || [ -z "$VERSION_OLD" ] || [ -z "$VERSION_NEW" ]; then + cat <<-EOF +Missing required arguments! + +Usage: $0 +Example: $0 gosec v1.58.1 v1.58.2 +EOF + + exit 1 +fi + +EOF + ## Clean function cleanBinaries() {