From d03097108c518cac76c172330de0eb47aef71272 Mon Sep 17 00:00:00 2001 From: "Xinwei Xiong(cubxxw-openim)" <3293172751nss@gmail.com> Date: Tue, 4 Jul 2023 09:16:40 +0800 Subject: [PATCH] feat: add code comment Signed-off-by: Xinwei Xiong(cubxxw-openim) <3293172751nss@gmail.com> --- Makefile | 7 ++++--- scripts/coverage.awk | 13 +++++++++++++ scripts/coverage.sh | 16 ++++++++++++++++ scripts/make-rules/golang.mk | 2 +- 4 files changed, 34 insertions(+), 4 deletions(-) create mode 100644 scripts/coverage.awk create mode 100644 scripts/coverage.sh diff --git a/Makefile b/Makefile index 2dd10fdbd..8e697535e 100644 --- a/Makefile +++ b/Makefile @@ -24,6 +24,7 @@ include scripts/make-rules/copyright.mk include scripts/make-rules/gen.mk include scripts/make-rules/dependencies.mk include scripts/make-rules/tools.mk +include scripts/make-rules/release.mk # ============================================================================== # Usage @@ -54,9 +55,9 @@ export USAGE_OPTIONS build: @$(MAKE) go.build -## build-multiarch: Build binaries for multiple platforms. See option PLATFORMS. -.PHONY: build-multiarch -build-multiarch: +## multiarch: Build binaries for multiple platforms. See option PLATFORMS. +.PHONY: multiarch +multiarch: @$(MAKE) go.build.multiarch ## tidy: tidy go.mod diff --git a/scripts/coverage.awk b/scripts/coverage.awk new file mode 100644 index 000000000..49389054e --- /dev/null +++ b/scripts/coverage.awk @@ -0,0 +1,13 @@ +#!/usr/bin/env awk + +{ + print $0 + if (match($0, /^total:/)) { + sub(/%/, "", $NF); + printf("test coverage is %s%(quality gate is %s%)\n", $NF, target) + if (strtonum($NF) < target) { + printf("test coverage does not meet expectations: %d%, please add test cases!\n", target) + exit 1; + } + } +} diff --git a/scripts/coverage.sh b/scripts/coverage.sh new file mode 100644 index 000000000..9fb77b59a --- /dev/null +++ b/scripts/coverage.sh @@ -0,0 +1,16 @@ +#!/usr/bin/env bash + +# http://stackoverflow.com/a/21142256/2055281 + +echo "mode: atomic" > coverage.txt + +for d in $(find ./* -maxdepth 10 -type d); do + if ls $d/*.go &> /dev/null; then + go test -coverprofile=profile.out -covermode=atomic $d + if [ -f profile.out ]; then + cat profile.out | grep -v "mode: " >> /tmp/coverage.txt + rm profile.out + fi + fi +done + diff --git a/scripts/make-rules/golang.mk b/scripts/make-rules/golang.mk index f9a73b5bd..25939b090 100644 --- a/scripts/make-rules/golang.mk +++ b/scripts/make-rules/golang.mk @@ -150,7 +150,7 @@ go.test: .PHONY: go.test.junit-report go.test.junit-report: tools.verify.go-junit-report @echo "===========> Run unit test > $(TMP_DIR)/report.xml" - @$(GO) test -v -coverprofile=$(TMP_DIR)/coverage.out 2>&1 ./... | $(TOOLS_DIR)/go-junit-report -set-exit-code > $(OUTPUT_DIR)/report.xml + @$(GO) test -v -coverprofile=$(TMP_DIR)/coverage.out 2>&1 ./... | $(TOOLS_DIR)/go-junit-report -set-exit-code > $(TMP_DIR)/report.xml @sed -i '/mock_.*.go/d' $(TMP_DIR)/coverage.out @echo "===========> Test coverage of Go code is reported to $(TMP_DIR)/coverage.html by generating HTML" @$(GO) tool cover -html=$(TMP_DIR)/coverage.out -o $(TMP_DIR)/coverage.html