Skip to content

Commit 9e71f01

Browse files
author
Ian Lewis
authored
Fix shellcheck errors (slsa-framework#338)
* Fix shellcheck issues in assert.sh * Fix shellcheck issues
1 parent 8958ae8 commit 9e71f01

File tree

5 files changed

+182
-179
lines changed

5 files changed

+182
-179
lines changed

.github/workflows/scripts/assert.sh

+158-154
Original file line numberDiff line numberDiff line change
@@ -10,7 +10,7 @@
1010
## Function list based on:
1111
## http://junit.sourceforge.net/javadoc/org/junit/Assert.html
1212
## Log methods : inspired by
13-
## - https://natelandau.com/bash-scripting-utilities/
13+
## - https://natelandau.com/bash-scripting-utilities/
1414
## author: Mark Torok
1515
##
1616
## date: 07. Dec. 2016
@@ -22,229 +22,233 @@
2222
# Note: from https://github.com/torokmark/assert.sh/blob/main/assert.sh.
2323

2424
if command -v tput &>/dev/null && tty -s; then
25-
RED=$(tput setaf 1)
26-
GREEN=$(tput setaf 2)
27-
MAGENTA=$(tput setaf 5)
28-
NORMAL=$(tput sgr0)
29-
BOLD=$(tput bold)
25+
RED=$(tput setaf 1)
26+
GREEN=$(tput setaf 2)
27+
MAGENTA=$(tput setaf 5)
28+
NORMAL=$(tput sgr0)
29+
BOLD=$(tput bold)
3030
else
31-
RED=$(echo -en "\e[31m")
32-
GREEN=$(echo -en "\e[32m")
33-
MAGENTA=$(echo -en "\e[35m")
34-
NORMAL=$(echo -en "\e[00m")
35-
BOLD=$(echo -en "\e[01m")
31+
RED=$(echo -en "\e[31m")
32+
GREEN=$(echo -en "\e[32m")
33+
MAGENTA=$(echo -en "\e[35m")
34+
NORMAL=$(echo -en "\e[00m")
35+
BOLD=$(echo -en "\e[01m")
3636
fi
3737

3838
log_header() {
39-
printf "\n${BOLD}${MAGENTA}========== %s ==========${NORMAL}\n" "$@" >&2
39+
printf "\n${BOLD}${MAGENTA}========== %s ==========${NORMAL}\n" "$@" >&2
4040
}
4141

4242
log_success() {
43-
printf "${GREEN}✔ %s${NORMAL}\n" "$@" >&2
43+
printf "${GREEN}✔ %s${NORMAL}\n" "$@" >&2
4444
}
4545

4646
log_failure() {
47-
printf "${RED}✖ %s${NORMAL}\n" "$@" >&2
47+
printf "${RED}✖ %s${NORMAL}\n" "$@" >&2
4848
}
4949

50-
5150
assert_eq() {
52-
local expected="$1"
53-
local actual="$2"
54-
local msg="${3-}"
55-
56-
if [ "$expected" == "$actual" ]; then
57-
return 0
58-
else
59-
[ "${#msg}" -gt 0 ] && log_failure "$expected == $actual :: $msg" || true
60-
return 1
61-
fi
51+
local expected="$1"
52+
local actual="$2"
53+
local msg="${3-}"
54+
55+
if [ "$expected" == "$actual" ]; then
56+
return 0
57+
else
58+
([ "${#msg}" -gt 0 ] && log_failure "$expected == $actual :: $msg") || true
59+
return 1
60+
fi
6261
}
6362

6463
assert_not_eq() {
65-
local expected="$1"
66-
local actual="$2"
67-
local msg="${3-}"
68-
69-
if [ ! "$expected" == "$actual" ]; then
70-
return 0
71-
else
72-
[ "${#msg}" -gt 0 ] && log_failure "$expected != $actual :: $msg" || true
73-
return 1
74-
fi
64+
local expected="$1"
65+
local actual="$2"
66+
local msg="${3-}"
67+
68+
if [ ! "$expected" == "$actual" ]; then
69+
return 0
70+
else
71+
([ "${#msg}" -gt 0 ] && log_failure "$expected != $actual :: $msg") || true
72+
return 1
73+
fi
7574
}
7675

7776
assert_true() {
78-
local actual="$1"
79-
local msg="${2-}"
77+
local actual="$1"
78+
local msg="${2-}"
8079

81-
assert_eq true "$actual" "$msg"
82-
return "$?"
80+
assert_eq true "$actual" "$msg"
81+
return "$?"
8382
}
8483

8584
assert_false() {
86-
local actual="$1"
87-
local msg="${2-}"
85+
local actual="$1"
86+
local msg="${2-}"
8887

89-
assert_eq false "$actual" "$msg"
90-
return "$?"
88+
assert_eq false "$actual" "$msg"
89+
return "$?"
9190
}
9291

9392
assert_array_eq() {
93+
# There is a bug in a shellcheck type check that bleeds across function
94+
# scope so these variables need to have a different name.
95+
# See: https://github.com/koalaman/shellcheck/issues/1225
96+
declare -a expecteda=("${!1-}")
97+
declare -a actuala=("${!2}")
9498

95-
declare -a expected=("${!1-}")
96-
# echo "AAE ${expected[@]}"
97-
98-
declare -a actual=("${!2}")
99-
# echo "AAE ${actual[@]}"
99+
local msg="${3-}"
100100

101-
local msg="${3-}"
101+
local return_code=0
102+
if [ ! "${#expecteda[@]}" == "${#actuala[@]}" ]; then
103+
return_code=1
104+
fi
102105

103-
local return_code=0
104-
if [ ! "${#expected[@]}" == "${#actual[@]}" ]; then
105-
return_code=1
106-
fi
106+
local i
107+
for ((i = 1; i < ${#expecteda[@]} + 1; i += 1)); do
108+
if [ ! "${expecteda[$i - 1]}" == "${actuala[$i - 1]}" ]; then
109+
return_code=1
110+
break
111+
fi
112+
done
107113

108-
local i
109-
for (( i=1; i < ${#expected[@]} + 1; i+=1 )); do
110-
if [ ! "${expected[$i-1]}" == "${actual[$i-1]}" ]; then
111-
return_code=1
112-
break
114+
if [ "$return_code" == 1 ]; then
115+
([ "${#msg}" -gt 0 ] && log_failure "(${expecteda[*]}) != (${actuala[*]}) :: $msg") || true
113116
fi
114-
done
115-
116-
if [ "$return_code" == 1 ]; then
117-
[ "${#msg}" -gt 0 ] && log_failure "(${expected[*]}) != (${actual[*]}) :: $msg" || true
118-
fi
119117

120-
return "$return_code"
118+
return "$return_code"
121119
}
122120

123121
assert_array_not_eq() {
122+
# There is a bug in a shellcheck type check that bleeds across function
123+
# scope so these variables need to have a different name.
124+
# See: https://github.com/koalaman/shellcheck/issues/1225
125+
declare -a expecteda=("${!1-}")
126+
declare -a actuala=("${!2}")
124127

125-
declare -a expected=("${!1-}")
126-
declare -a actual=("${!2}")
128+
local msg="${3-}"
127129

128-
local msg="${3-}"
130+
local return_code=1
131+
if [ ! "${#expecteda[@]}" == "${#actuala[@]}" ]; then
132+
return_code=0
133+
fi
129134

130-
local return_code=1
131-
if [ ! "${#expected[@]}" == "${#actual[@]}" ]; then
132-
return_code=0
133-
fi
135+
local i
136+
for ((i = 1; i < ${#expecteda[@]} + 1; i += 1)); do
137+
if [ ! "${expecteda[$i - 1]}" == "${actuala[$i - 1]}" ]; then
138+
return_code=0
139+
break
140+
fi
141+
done
134142

135-
local i
136-
for (( i=1; i < ${#expected[@]} + 1; i+=1 )); do
137-
if [ ! "${expected[$i-1]}" == "${actual[$i-1]}" ]; then
138-
return_code=0
139-
break
143+
if [ "$return_code" == 1 ]; then
144+
([ "${#msg}" -gt 0 ] && log_failure "(${expecteda[*]}) == (${actuala[*]}) :: $msg") || true
140145
fi
141-
done
142146

143-
if [ "$return_code" == 1 ]; then
144-
[ "${#msg}" -gt 0 ] && log_failure "(${expected[*]}) == (${actual[*]}) :: $msg" || true
145-
fi
146-
147-
return "$return_code"
147+
return "$return_code"
148148
}
149149

150150
assert_empty() {
151-
local actual=$1
152-
local msg="${2-}"
151+
local actual=$1
152+
local msg="${2-}"
153153

154-
assert_eq "" "$actual" "$msg"
155-
return "$?"
154+
assert_eq "" "$actual" "$msg"
155+
return "$?"
156156
}
157157

158158
assert_not_empty() {
159-
local actual=$1
160-
local msg="${2-}"
159+
local actual=$1
160+
local msg="${2-}"
161161

162-
assert_not_eq "" "$actual" "$msg"
163-
return "$?"
162+
assert_not_eq "" "$actual" "$msg"
163+
return "$?"
164164
}
165165

166166
assert_contain() {
167-
local haystack="$1"
168-
local needle="${2-}"
169-
local msg="${3-}"
167+
local haystack="$1"
168+
local needle="${2-}"
169+
local msg="${3-}"
170170

171-
if [ -z "${needle:+x}" ]; then
172-
return 0;
173-
fi
171+
if [ -z "${needle:+x}" ]; then
172+
return 0
173+
fi
174174

175-
if [ -z "${haystack##*$needle*}" ]; then
176-
return 0
177-
else
178-
[ "${#msg}" -gt 0 ] && log_failure "$haystack doesn't contain $needle :: $msg" || true
179-
return 1
180-
fi
175+
# needle is used as a search pattern.
176+
# shellcheck disable=SC2295
177+
if [ -z "${haystack##*$needle*}" ]; then
178+
return 0
179+
else
180+
([ "${#msg}" -gt 0 ] && log_failure "$haystack doesn't contain $needle :: $msg") || true
181+
return 1
182+
fi
181183
}
182184

183185
assert_not_contain() {
184-
local haystack="$1"
185-
local needle="${2-}"
186-
local msg="${3-}"
186+
local haystack="$1"
187+
local needle="${2-}"
188+
local msg="${3-}"
187189

188-
if [ -z "${needle:+x}" ]; then
189-
return 0;
190-
fi
190+
if [ -z "${needle:+x}" ]; then
191+
return 0
192+
fi
191193

192-
if [ "${haystack##*$needle*}" ]; then
193-
return 0
194-
else
195-
[ "${#msg}" -gt 0 ] && log_failure "$haystack contains $needle :: $msg" || true
196-
return 1
197-
fi
194+
# needle is used as a search pattern.
195+
# shellcheck disable=SC2295
196+
if [ "${haystack##*$needle*}" ]; then
197+
return 0
198+
else
199+
([ "${#msg}" -gt 0 ] && log_failure "$haystack contains $needle :: $msg") || true
200+
return 1
201+
fi
198202
}
199203

200204
assert_gt() {
201-
local first="$1"
202-
local second="$2"
203-
local msg="${3-}"
204-
205-
if [[ "$first" -gt "$second" ]]; then
206-
return 0
207-
else
208-
[ "${#msg}" -gt 0 ] && log_failure "$first > $second :: $msg" || true
209-
return 1
210-
fi
205+
local first="$1"
206+
local second="$2"
207+
local msg="${3-}"
208+
209+
if [[ "$first" -gt "$second" ]]; then
210+
return 0
211+
else
212+
([ "${#msg}" -gt 0 ] && log_failure "$first > $second :: $msg") || true
213+
return 1
214+
fi
211215
}
212216

213217
assert_ge() {
214-
local first="$1"
215-
local second="$2"
216-
local msg="${3-}"
217-
218-
if [[ "$first" -ge "$second" ]]; then
219-
return 0
220-
else
221-
[ "${#msg}" -gt 0 ] && log_failure "$first >= $second :: $msg" || true
222-
return 1
223-
fi
218+
local first="$1"
219+
local second="$2"
220+
local msg="${3-}"
221+
222+
if [[ "$first" -ge "$second" ]]; then
223+
return 0
224+
else
225+
([ "${#msg}" -gt 0 ] && log_failure "$first >= $second :: $msg") || true
226+
return 1
227+
fi
224228
}
225229

226230
assert_lt() {
227-
local first="$1"
228-
local second="$2"
229-
local msg="${3-}"
230-
231-
if [[ "$first" -lt "$second" ]]; then
232-
return 0
233-
else
234-
[ "${#msg}" -gt 0 ] && log_failure "$first < $second :: $msg" || true
235-
return 1
236-
fi
231+
local first="$1"
232+
local second="$2"
233+
local msg="${3-}"
234+
235+
if [[ "$first" -lt "$second" ]]; then
236+
return 0
237+
else
238+
([ "${#msg}" -gt 0 ] && log_failure "$first < $second :: $msg") || true
239+
return 1
240+
fi
237241
}
238242

239243
assert_le() {
240-
local first="$1"
241-
local second="$2"
242-
local msg="${3-}"
243-
244-
if [[ "$first" -le "$second" ]]; then
245-
return 0
246-
else
247-
[ "${#msg}" -gt 0 ] && log_failure "$first <= $second :: $msg" || true
248-
return 1
249-
fi
244+
local first="$1"
245+
local second="$2"
246+
local msg="${3-}"
247+
248+
if [[ "$first" -le "$second" ]]; then
249+
return 0
250+
else
251+
([ "${#msg}" -gt 0 ] && log_failure "$first <= $second :: $msg") || true
252+
return 1
253+
fi
250254
}

0 commit comments

Comments
 (0)