-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathtema2_checker.sh
140 lines (114 loc) · 2.86 KB
/
tema2_checker.sh
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
#!/bin/bash
GOOD_BONUS=`echo -ne "Starting audit...\nAudit done.\n"`
BAD_BONUS=0
totalTests=37
goodTests=0
badTests=0
inputName="test"
existingReadme=0
function checkForReadme
{
echo -ne "Checking for README: "
find README &>/dev/null
if [ $? -eq 0 ]; then
echo -ne "- OK! \n"
existingReadme=10
else
echo -ne "- NO README! \n"
existingReadme=0
fi
}
function checkCodeStyle
{
java -jar checkstyle/checkstyle-7.3-all.jar -c checkstyle/poo_checks.xml * > checkstyle.txt
YOUR_BONUS=`cat checkstyle.txt`
if [[ "$GOOD_BONUS" != "$YOUR_BONUS" ]]; then
BAD_BONUS=`cat checkstyle.txt | grep -o 'Checkstyle ends with [0-9]* errors.' | grep -o '[0-9]*'`
if [ $BAD_BONUS -le 30 ]; then
echo -ne "Checkstyle erros: $BAD_BONUS ............. OK\n"
BAD_BONUS=0
else
echo -ne "Checkstyle erros: $BAD_BONUS ............. FAILED\n"
fi
else
echo -ne "Checkstyle erros: 0 ............. OK\n"
fi
}
function compileHomework
{
make -f MiniCADMakefile build &>/dev/null
}
function checkCat
{
readFrom="./input/cat.in"
imageName="cat.png"
java Main $readFrom &>/dev/null
if [ $? -eq 0 ]; then
diff "drawing.png" "./ref/$imageName" &>/dev/null
if [ $? -eq 0 ]; then
echo -ne "TEST 38: You succeeded in drawing a cat!\n"
goodTests=$((goodTests+1))
else
echo -ne "TEST 38: ............. FAILED!\n"
badTests=$((badTests+1))
fi
else
echo -ne "TEST 38: ............. FAILED! Program error!\n"
badTests=$((badTests+1))
fi
}
function checkOwl
{
readFrom="./input/owl.in"
imageName="owl.png"
java Main $readFrom &>/dev/null
if [ $? -eq 0 ]; then
diff "drawing.png" "./ref/$imageName" &>/dev/null
if [ $? -eq 0 ]; then
echo -ne "TEST 39: You succeeded in drawing an owl!\n"
goodTests=$((goodTests+1))
else
echo -ne "TEST 39: ............. FAILED!\n"
badTests=$((badTests+1))
fi
else
echo -ne "TEST 39: ............. FAILED! Program error!\n"
badTests=$((badTests+1))
fi
}
## MAIN EXECUTION ##
compileHomework
if [ $? -eq 0 ]; then
checkForReadme
for ((nrTest=0; nrTest<=$totalTests; nrTest++))
do
readFrom="./input/$inputName$nrTest.in"
imageName="image$nrTest.png"
java Main $readFrom &>/dev/null
if [ $? -eq 0 ]; then
convert drawing.png drawing.rgba
convert "./ref/$imageName" image.rgba
cmp {drawing,image}.rgba &>/dev/null
if [ $? -eq 0 ]; then
echo -ne "TEST $nrTest: ............. OK!\n"
goodTests=$((goodTests+1))
else
echo -ne "TEST $nrTest: ............. FAILED!\n"
badTests=$((badTests+1))
fi
else
echo -ne "TEST $nrTest: ............. FAILED! Program error!\n"
badTests=$((badTests+1))
fi
done
checkCat
checkOwl
checkCodeStyle
finalPoints=$((goodTests*90/40))
finalPoints=$((finalPoints - BAD_BONUS + existingReadme))
echo -ne "BAD TESTS: $badTests\n"
echo -ne "TOTAL POINTS: $finalPoints\n"
make clean &>/dev/null
else
echo -ne "FAIL: Compilation error!\n"
fi