forked from NCAR/ncl_ci_test
-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathrun_tests.bash
executable file
·105 lines (92 loc) · 2.69 KB
/
run_tests.bash
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
#!/bin/bash
verbose=true
declare -a ncl_fail
declare -a identical
declare -a similar
declare -a different
for dir in */; do
unset dir_ncl_fail
unset dir_identical
unset dir_similar
unset dir_different
declare -a dir_ncl_fail
declare -a dir_identical
declare -a dir_similar
declare -a dir_different
dir=${dir%%/} # remove trailing /
cd $dir
mkdir -p bad
for s in *.ncl; do
png=${s%%.ncl}.png
if [ -x "$(command -v "timeout")" ]; then
timeout 1m ncl -Q $s >/dev/null
ncl_ret=$?
if [ $ncl_ret -eq 124 ] && [ -e "$png" ] || [ $ncl_ret -eq 0 ]; then
ncl_ret=0
else
ncl_ret=1
fi
else
ncl -Q $s >/dev/null
ncl_ret=$?
fi
if [[ $ncl_ret -ne 0 ]]; then
dir_ncl_fail+=( $png )
continue
fi
cmp images/$png $png 2>/dev/null
cmp_ret=$?
if [[ $cmp_ret -eq 0 ]]; then
rm $png
dir_identical+=( $png )
continue
fi
mv $png bad/.
compare -metric DSSIM images/$png bad/$png null 2>/dev/null
compare_ret=$?
if [[ $compare_ret -eq 0 ]]; then
dir_similar+=( $png )
else
dir_different+=( $png )
fi
done
cd ..
ncl_fail+=( ${dir_ncl_fail[@]} )
identical+=( ${dir_identical[@]} )
similar+=( ${dir_similar[@]} )
different+=( ${dir_different[@]} )
echo $dir:
if $verbose; then
echo -e " identical: ${#dir_identical[@]}"
echo -e " similar: ${#dir_similar[@]}"
echo -e " different: ${#dir_different[@]}"
if [[ ${#dir_different[@]} -gt 0 ]]; then
echo -e " ${dir_different[@]}"
fi
echo -e " NCL failure: ${#dir_ncl_fail[@]}"
if [[ ${#dir_ncl_fail[@]} -gt 0 ]]; then
echo -e " ${dir_ncl_fail[@]}"
fi
echo
else
echo -e " pass: $(( ${#dir_identical[@]} + ${#dir_similar[@]} ))"
echo -e " fail: $(( ${#dir_different[@]} + ${#dir_ncl_fail[@]} ))"
if [[ $(( ${#dir_different[@]} + ${#dir_ncl_fail[@]} )) -gt 0 ]]; then
echo -e " ${dir_ncl_fail[@]} ${dir_different[@]}"
fi
echo
fi
done
echo total:
if $verbose; then
echo ${#identical[@]} identical
echo ${#similar[@]} similar
echo ${#different[@]} different
echo ${#ncl_fail[@]} NCL failures
else
echo $(( ${#dir_identical[@]} + ${#dir_similar[@]} )) pass
echo $(( ${#dir_different[@]} + ${#dir_ncl_fail[@]} )) fail
fi
if [[ $(( ${#dir_different[@]} + ${#dir_ncl_fail[@]} )) -gt 0 ]]; then
exit 1
fi