-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathrun-tests
executable file
·160 lines (101 loc) · 3.66 KB
/
run-tests
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
#!/bin/bash
print_ruler() {
printf "\n"
printf "=%.0s" {1..79}
printf "\n"
printf "\n"
} # print_ruler()
get_go_package_name() {
awk '/^package / { print $NF }' ./*.go | head -n 1
} # get_go_package_name()
main() {
printf "Running automated test file(s):\n\n"
mapfile -t packages < <(get_go_package_name)
printf "Go packages: "
printf "%s " "${packages[@]}"
printf "\n\n"
print_ruler
# go install github.com/golangci/golangci-lint/cmd/golangci-lint@latest
echo Running: ../../.github/citools/go/go-lint-golangci-lint
time ../../.github/citools/go/go-lint-golangci-lint
print_ruler
# go install github.com/mgechev/revive@latest
echo Running: ../../.github/citools/go/go-lint-revive
time ../../.github/citools/go/go-lint-revive
print_ruler
# go install github.com/gordonklaus/ineffassign@latest
echo Running: ../../.github/citools/go/go-lint-ineffassign
time ../../.github/citools/go/go-lint-ineffassign
print_ruler
# go install github.com/quasilyte/go-consistent@latest
echo Running: ../../.github/citools/go/go-lint-go-consistent
time ../../.github/citools/go/go-lint-go-consistent
print_ruler
# go install honnef.co/go/tools/cmd/staticcheck@latest
echo Running: ../../.github/citools/go/go-lint-staticcheck
time ../../.github/citools/go/go-lint-staticcheck
print_ruler
# go install github.com/go-critic/go-critic/cmd/gocritic@latest
echo Running: ../../.github/citools/go/go-lint-gocritic
time ../../.github/citools/go/go-lint-gocritic
print_ruler
echo Running: ../../.github/citools/go/go-lint-go_vet
time ../../.github/citools/go/go-lint-go_vet
print_ruler
echo Running: ../../.github/citools/go/go-fixer-go_fix
time ../../.github/citools/go/go-fixer-go_fix
print_ruler
echo Running: ../../.github/citools/go/go-lint-errcheck
time ../../.github/citools/go/go-lint-errcheck
print_ruler
# go install github.com/fzipp/gocyclo/cmd/gocyclo@latest
echo Running: ../../.github/citools/go/go-lint-gocyclo
time ../../.github/citools/go/go-lint-gocyclo
print_ruler
# go install github.com/client9/misspell/cmd/misspell@latest
echo Running: ../../.github/citools/go/go-lint-misspell
time ../../.github/citools/go/go-lint-misspell
print_ruler
# go install github.com/securego/gosec/cmd/gosec@latest
echo Running: ../../.github/citools/go/go-lint-gosec
time ../../.github/citools/go/go-lint-gosec
print_ruler
# go install golang.org/x/tools/cmd/cover@latest
# go install github.com/rakyll/gotest@latest
# go install github.com/axw/gocov/gocov@latest
echo Running: ../../.github/citools/go/go-test-cover-report
time ../../.github/citools/go/go-test-cover-report
print_ruler
if [[ -f benchstat-new.txt ]]; then
echo mv -v benchstat-{new,old}.txt
mv -v benchstat-{new,old}.txt
printf "\n"
fi
echo gotest -v --run=xxx --bench . --benchmem '|&' tee benchstat-new.txt
time gotest -v --run=xxx --bench . --benchmem |& tee benchstat-new.txt
print_ruler
echo gotest -v -tags bonus
time gotest -v -tags bonus
print_ruler
if [[ -f benchstat-old.txt ]] && [[ -f benchstat-new.txt ]]; then
# go install golang.org/x/perf/cmd/benchstat@latest
echo benchstat benchstat-{old,new}.txt
time benchstat benchstat-{old,new}.txt
else
printf "No old benchmarks to run benchstat against.\n"
fi
print_ruler
# go install github.com/princjef/gomarkdoc/cmd/gomarkdoc@latest
for package in "${packages[@]}"; do
echo gomarkdoc --output "${package}"-doc.md
time gomarkdoc --output "${package}"-doc.md
done
print_ruler
for package in "${packages[@]}"; do
echo go doc -all "${package}"
time go doc -all "${package}" |& tee "${package}"-doc.txt
printf "\n"
done
print_ruler
} # main()
time main "$@" |& tee ./run-tests-go.txt