|
20 | 20 | # |
21 | 21 | set -euo pipefail |
22 | 22 |
|
| 23 | +DIR="$( cd -- "$(dirname "$0")" >/dev/null 2>&1 ; pwd -P )" |
| 24 | +source "$DIR/test-tools.sh" |
23 | 25 | DB_BACKUPS_DIR=~/backup |
24 | 26 |
|
25 | | -function logmsg { |
26 | | - echo "$@" | tee -a "$IT_LOG_FILE" |
27 | | -} |
28 | | - |
29 | | -function run_test { |
30 | | - file=$1; shift |
31 | | - logmsg "$@" |
32 | | - if [ "$SONAR_HOST_URL" == "$SONAR_HOST_URL_SONARCLOUD" ]; then |
33 | | - "$@" -o okorach |
34 | | - else |
35 | | - "$@" |
36 | | - fi |
37 | | - check "$file" |
38 | | -} |
39 | | - |
40 | | -function run_test_stdout { |
41 | | - file=$1; shift |
42 | | - logmsg "$@" ">$file" |
43 | | - if [ "$SONAR_HOST_URL" == "$SONAR_HOST_URL_SONARCLOUD" ]; then |
44 | | - "$@" -o okorach >"$file" |
45 | | - else |
46 | | - "$@" >"$file" |
47 | | - fi |
48 | | - check "$file" |
49 | | -} |
50 | | - |
51 | | -check() { |
52 | | - if [ -s "$1" ]; then |
53 | | - logmsg "Output file $1 is OK" |
54 | | - else |
55 | | - logmsg "Output file $1 is missing or empty" |
56 | | - # exit 1 |
57 | | - fi |
58 | | -} |
59 | | - |
60 | 27 | function backup_for { |
61 | 28 | case $1 in |
62 | 29 | lts|lta|lts-ce|lta-ce|lts-de|lta-de) |
@@ -122,140 +89,128 @@ for env in "$@" |
122 | 89 | do |
123 | 90 |
|
124 | 91 | logmsg "Install sonar-tools current local version: root = $TMP" |
125 | | - cd "$REPO_ROOT"; ./deploy.sh nodoc; cd - |
| 92 | + cd "$REPO_ROOT"; ./deploy.sh nodoc nodocker 1>$IT_LOG_FILE 2>&1; cd - |
126 | 93 |
|
127 | 94 | if [ "$env" = "sonarcloud" ]; then |
128 | 95 | logmsg "Running with environment $env" |
129 | 96 | export SONAR_TOKEN=$SONAR_TOKEN_SONARCLOUD |
130 | 97 | export SONAR_HOST_URL=$SONAR_HOST_URL_SONARCLOUD |
131 | 98 | else |
132 | 99 | id="it$$" |
133 | | - logmsg "Running with environment $env - sonarId $id" |
| 100 | + logmsg "Creating IT test environment $env - sonarId $id" |
134 | 101 | sqport=10020 |
135 | 102 | # echo sonar create -i $id -t "$(tag_for "$env")" -s $sqport -p 6020 -f "$(backup_for "$env")" |
136 | | - sonar create -i $id -t "$(tag_for "$env")" -s $sqport -p 6020 -f "$(backup_for "$env")" |
| 103 | + sonar create -i $id -t "$(tag_for "$env")" -s $sqport -p 6020 -f "$(backup_for "$env")" 1>$IT_LOG_FILE 2>&1 |
137 | 104 | export SONAR_TOKEN=$SONAR_TOKEN_ADMIN_USER |
138 | 105 | export SONAR_HOST_URL="http://localhost:$sqport" |
139 | 106 | fi |
140 | 107 |
|
141 | | - logmsg "IT $env sonar-measures-export" |
142 | | - f="$TMP/measures-$env-unrel.csv"; run_test "$f" sonar-measures-export -b -f "$f" -m _main --withURL |
143 | | - f="$TMP/measures-$env-2.csv"; run_test_stdout "$f" sonar-measures-export -b -m _main --withURL |
144 | | - f="$TMP/measures-$env-3.csv"; run_test_stdout "$f" sonar-measures-export -b -p -r -d -m _all |
| 108 | + f="measures-$env-unrel.csv"; run_test "$f" sonar-measures-export -b -m _main --withURL |
| 109 | + f="measures-$env-2.csv"; run_test_stdout "$f" sonar-measures-export -b -m _main --withURL |
| 110 | + f="measures-$env-3.csv"; run_test_stdout "$f" sonar-measures-export -b -p -r -d -m _all |
145 | 111 |
|
146 | | - f="$TMP/measures-$env-1.json"; run_test "$f" sonar-measures-export -b -f "$f" -m _all |
147 | | - f="$TMP/measures-$env-2.json"; run_test_stdout "$f" sonar-measures-export -b -p -r -d -m _all --format json |
148 | | - f="$TMP/measures-$env-3.csv"; run_test "$f" sonar-measures-export -b -f "$f" --csvSeparator '+' -m _main |
| 112 | + f="measures-$env-1.json"; run_test "$f" sonar-measures-export -b -m _all |
| 113 | + f="measures-$env-2.json"; run_test_stdout "$f" sonar-measures-export -b -p -r -d -m _all --format json |
| 114 | + f="measures-$env-3.csv"; run_test "$f" sonar-measures-export -b --csvSeparator '+' -m _main |
149 | 115 |
|
150 | | - f="$TMP/measures-history-$env-1.csv"; run_test "$f" sonar-measures-export -b -f "$f" --history |
151 | | - f="$TMP/measures-history-$env-2.csv"; run_test "$f" sonar-measures-export -b -f "$f" -k okorach_sonar-tools --history --asTable |
152 | | - f="$TMP/measures-history-$env-3.json"; run_test "$f" sonar-measures-export -b -f "$f" --history |
| 116 | + f="measures-history-$env-1.csv"; run_test "$f" sonar-measures-export -b --history |
| 117 | + f="measures-history-$env-2.csv"; run_test "$f" sonar-measures-export -b -k okorach_sonar-tools --history --asTable |
| 118 | + f="measures-history-$env-3.json"; run_test "$f" sonar-measures-export -b --history |
153 | 119 |
|
154 | 120 | logmsg "IT $env sonar-findings-export" |
155 | 121 |
|
156 | | - f="$TMP/findings-$env-unrel.csv"; run_test "$f" sonar-findings-export -v DEBUG -f "$f" |
157 | | - f="$TMP/findings-$env-1.json"; run_test "$f" sonar-findings-export -f "$f" |
158 | | - f="$TMP/findings-$env-2.json"; run_test_stdout "$f" sonar-findings-export -v DEBUG --format json -k okorach_audio-video-tools,okorach_sonar-tools |
159 | | - f="$TMP/findings-$env-3.json"; run_test_stdout "$f" sonar-findings-export -v DEBUG --format json -k okorach_audio-video-tools,okorach_sonar-tools --useFindings |
160 | | - f="$TMP/findings-$env-4.csv"; run_test_stdout "$f" sonar-findings-export --format csv -k okorach_audio-video-tools,okorach_sonar-tools --csvSeparator '+' |
| 122 | + f="findings-$env-unrel.csv"; run_test "$f" sonar-findings-export -v DEBUG |
| 123 | + f="findings-$env-1.json"; run_test "$f" sonar-findings-export |
| 124 | + f="findings-$env-2.json"; run_test_stdout "$f" sonar-findings-export -v DEBUG --format json -k okorach_audio-video-tools,okorach_sonar-tools |
| 125 | + f="findings-$env-3.json"; run_test_stdout "$f" sonar-findings-export -v DEBUG --format json -k okorach_audio-video-tools,okorach_sonar-tools --useFindings |
| 126 | + f="findings-$env-4.csv"; run_test_stdout "$f" sonar-findings-export --format csv -k okorach_audio-video-tools,okorach_sonar-tools --csvSeparator '+' |
161 | 127 |
|
162 | 128 | if [ "$env" = "sonarcloud" ]; then |
163 | 129 | logmsg "IT $env sonar-audit SKIPPED" |
164 | 130 | logmsg "IT $env sonar-housekeeper SKIPPED" |
165 | 131 | else |
166 | 132 | logmsg "IT $env sonar-audit" |
167 | | - f="$TMP/audit-$env-unrel.csv"; run_test_stdout "$f" sonar-audit |
168 | | - f="$TMP/audit-$env-1.json"; run_test "$f" sonar-audit -f "$f" |
169 | | - f="$TMP/audit-$env-2.json"; run_test_stdout "$f" sonar-audit --format json --what qualitygates,qualityprofiles,settings |
170 | | - f="$TMP/audit-$env-3.csv"; run_test_stdout "$f" sonar-audit --csvSeparator '+' --format csv |
| 133 | + f="audit-$env-unrel.csv"; run_test_stdout "$f" sonar-audit |
| 134 | + f="audit-$env-1.json"; run_test "$f" sonar-audit |
| 135 | + f="audit-$env-2.json"; run_test_stdout "$f" sonar-audit --format json --what qualitygates,qualityprofiles,settings |
| 136 | + f="audit-$env-3.csv"; run_test_stdout "$f" sonar-audit --csvSeparator '+' --format csv |
171 | 137 |
|
172 | 138 | logmsg "IT $env sonar-housekeeper" |
173 | | - f="$TMP/housekeeper-$env-1.csv"; run_test_stdout "$f" sonar-housekeeper -P 365 -B 90 -T 180 -R 30 |
| 139 | + f="housekeeper-$env-1.csv"; run_test_stdout "$f" sonar-housekeeper -P 365 -B 90 -T 180 -R 30 |
174 | 140 | fi |
175 | 141 |
|
176 | 142 | logmsg "IT $env sonar-loc" |
177 | | - f="$TMP/loc-$env-1.csv"; run_test_stdout "$f" sonar-loc |
178 | | - f="$TMP/loc-$env-unrel.csv"; run_test_stdout "$f" sonar-loc -n -a |
179 | | - f="$TMP/loc-$env-2.csv"; run_test "$f" sonar-loc -n -a -f "$f" --csvSeparator ';' |
| 143 | + f="loc-$env-1.csv"; run_test_stdout "$f" sonar-loc |
| 144 | + f="loc-$env-unrel.csv"; run_test_stdout "$f" sonar-loc -n -a |
| 145 | + f="loc-$env-2.csv"; run_test "$f" sonar-loc -n -a --csvSeparator ';' |
180 | 146 |
|
181 | 147 | logmsg "sonar-rules $env" |
182 | | - f="$TMP/rules-$env-1.csv"; run_test_stdout "$f" sonar-rules -e |
183 | | - f="$TMP/rules-$env-2.csv"; run_test "$f" sonar-rules -e -f "$f" |
184 | | - f="$TMP/rules-$env-3.json"; run_test_stdout "$f" sonar-rules -e --format json |
185 | | - f="$TMP/rules-$env-4.json"; run_test "$f" sonar-rules -e -f "$f" |
| 148 | + f="rules-$env-1.csv"; run_test_stdout "$f" sonar-rules -e |
| 149 | + f="rules-$env-2.csv"; run_test "$f" sonar-rules -e |
| 150 | + f="rules-$env-3.json"; run_test_stdout "$f" sonar-rules -e --format json |
| 151 | + f="rules-$env-4.json"; run_test "$f" sonar-rules -e |
186 | 152 |
|
187 | 153 | logmsg "sonar-config $env" |
188 | | - f="$TMP/config-$env-1.json"; run_test_stdout "$f" sonar-config -e -w "qualitygates, qualityprofiles, projects" -k okorach_audio-video-tools,okorach_sonar-tools |
189 | | - f="$TMP/config-$env-2.json"; run_test_stdout "$f" sonar-config --export |
190 | | - f="$TMP/config-$env-unrel.json"; run_test "$f" sonar-config --export -f "$f" |
| 154 | + f="config-$env-1.json"; run_test_stdout "$f" sonar-config -e -w "qualitygates, qualityprofiles, projects" -k okorach_audio-video-tools,okorach_sonar-tools |
| 155 | + f="config-$env-2.json"; run_test_stdout "$f" sonar-config --export |
| 156 | + f="config-$env-unrel.json"; run_test "$f" sonar-config --export |
191 | 157 |
|
192 | 158 | if [ $noExport -eq 1 ]; then |
193 | 159 | logmsg "sonar-projects-export $env test skipped" |
194 | 160 | elif [ "$env" = "sonarcloud" ]; then |
195 | 161 | logmsg "sonar-projects-export $env SKIPPED" |
196 | 162 | else |
197 | 163 | logmsg "sonar-projects-export $env" |
198 | | - sonar-projects-export |
| 164 | + f="proj-export-$env-2.json"; run_test "$f" sonar-projects-export |
199 | 165 | fi |
200 | 166 |
|
201 | 167 | logmsg "sonar-findings-export $env ADMIN export" |
202 | | - f1="$TMP/findings-$env-admin.csv"; run_test "$f1" sonar-findings-export -v DEBUG -f "$f1" -k okorach_audio-video-tools,okorach_sonar-tools |
| 168 | + f1="findings-$env-admin.csv"; run_test "$f1" sonar-findings-export -v DEBUG -k okorach_audio-video-tools,okorach_sonar-tools |
203 | 169 |
|
204 | 170 | if [ "$env" = "sonarcloud" ]; then |
205 | 171 | logmsg "sonar-projects-export $env SKIPPED" |
206 | 172 | else |
207 | 173 | logmsg "sonar-findings-export $env USER export" |
208 | 174 | export SONAR_TOKEN=$SONAR_TOKEN_USER_USER |
209 | | - f2="$TMP/findings-$env-user.csv"; run_test "$f2" sonar-findings-export -v DEBUG -f "$f2" -k okorach_audio-video-tools,okorach_sonar-tools |
| 175 | + f2="findings-$env-user.csv"; run_test "$f2" sonar-findings-export -v DEBUG -k okorach_audio-video-tools,okorach_sonar-tools |
210 | 176 | fi |
211 | 177 |
|
212 | 178 | # Restore admin token as long as previous version is 2.9 or less |
213 | 179 | logmsg "Restore sonar-tools last released version" |
214 | | - echo "Y" | pip uninstall sonar-tools |
215 | | - pip install sonar-tools |
| 180 | + pip install --force-reinstall sonar-tools 1>$IT_LOG_FILE 2>&1; |
216 | 181 |
|
217 | 182 | export SONAR_TOKEN="$SONAR_TOKEN_ADMIN_USER" |
218 | 183 | logmsg "IT released tools $env" |
219 | | - sonar-measures-export -b -f "$TMP/measures-$env-rel.csv" -m _main --withURL |
220 | | - sonar-findings-export -f "$TMP/findings-$env-rel.csv" |
221 | | - if [ "$env" != "sonarcloud" ]; then |
222 | | - sonar-audit >"$TMP/audit-$env-rel.csv" || echo "OK" |
223 | | - fi |
224 | | - sonar-loc -n -a >"$TMP/loc-$env-rel.csv" |
225 | | - sonar-config -e >"$TMP/config-$env-rel.json" |
226 | | - |
227 | | - echo "IT compare released and unreleased $env" | tee -a "$IT_LOG_FILE" |
228 | | - for f in measures findings audit loc |
| 184 | + f="measures-$env-rel.csv"; run_test "$f" sonar-measures-export -b -m _main --withURL |
| 185 | + # sonar-measures-export -b -f "$f" |
| 186 | + f="findings-$env-rel.csv"; run_test "$f" sonar-findings-export |
| 187 | + # f="audit-$env-rel.csv"; run_test "$f" sonar-audit -f "audit-$env-rel.csv" |
| 188 | + f="loc-$env-rel.csv"; run_test "$f" sonar-loc -n -a |
| 189 | + f="config-$env-rel.json"; run_test "$f" sonar-config -e |
| 190 | + |
| 191 | + logmsg "IT compare released and unreleased $env" |
| 192 | + for f in measures findings loc |
229 | 193 | do |
230 | 194 | root="$TMP/$f-$env" |
231 | | - logmsg "==========================" |
232 | | - logmsg "$f-$env diff" |
233 | | - logmsg "==========================" |
234 | | - sort "$root-rel.csv" >"$root-rel.sorted.csv" |
235 | | - sort "$root-unrel.csv" >"$root-unrel.sorted.csv" |
236 | | - diff "$root-rel.sorted.csv" "$root-unrel.sorted.csv" | tee -a "$IT_LOG_FILE" || echo "" |
| 195 | + announce_test "$f-$env diff" |
| 196 | + sort -o "$root-rel.csv" "$root-rel.csv" |
| 197 | + sort -o "$root-unrel.csv" "$root-unrel.csv" |
| 198 | + test_passed_if_identical "$root-rel.csv" "$root-unrel.csv" |
237 | 199 | done |
238 | 200 | for f in config |
239 | 201 | do |
240 | 202 | root="$TMP/$f-$env" |
241 | | - logmsg "==========================" |
242 | | - logmsg "$f-$env diff" |
243 | | - logmsg "==========================" |
244 | | - diff "$root-rel.json" "$root-unrel.json" | tee -a "$IT_LOG_FILE" || echo "" |
| 203 | + announce_test "$f-$env diff" |
| 204 | + test_passed_if_identical "$root-rel.json" "$root-unrel.json" |
245 | 205 | done |
246 | | - logmsg "==========================" |
247 | | - logmsg "findings-$env admin vs user diff" |
248 | | - logmsg "==========================" |
249 | | - f1="$TMP/findings-$env-admin.csv" |
250 | | - f2="$TMP/findings-$env-user.csv" |
251 | | - diff "$f1" "$f2" | tee -a "$IT_LOG_FILE" || echo "" |
252 | | - |
| 206 | + announce_test "findings-$env admin vs user diff" |
| 207 | + test_passed_if_identical "$TMP/findings-$env-admin.csv" "$TMP/findings-$env-user.csv" |
253 | 208 | if [ "$env" != "sonarcloud" ]; then |
254 | 209 | logmsg "Deleting environment sonarId $id" |
255 | 210 | sonar delete -i "$id" |
256 | 211 | fi |
257 | 212 | done |
258 | 213 |
|
259 | 214 | logmsg "=====================================" |
260 | | -logmsg " IT tests success" |
| 215 | +logmsg " IT tests end" |
261 | 216 | logmsg "=====================================" |
0 commit comments