2
2
3
3
set -euo pipefail
4
4
5
- PASS_FILES=$( find pass_files -name " *.d" )
6
- FAIL_FILES=$( find fail_files -name " *.d" )
5
+ PASS_FILES=$( find pass_files -name " *.d" | sort )
6
+ FAIL_FILES=$( find fail_files -name " *.d" | sort )
7
7
PASS_COUNT=0
8
8
FAIL_COUNT=0
9
9
NORMAL=" \033[01;0m"
@@ -18,25 +18,37 @@ echo -en "Compiling parse tester... "
18
18
${DMD} tester.d $SOURCE_FILES -g $IMPORT_PATHS
19
19
echo -e " ${GREEN} DONE${NORMAL} "
20
20
21
+ test_fail () {
22
+ set +e
23
+ ./tester " $@ "
24
+ test_fail_status=$?
25
+ set -e
26
+ if [ $test_fail_status -eq 1 ]; then
27
+ return 0
28
+ else
29
+ return 1
30
+ fi
31
+ }
32
+
21
33
for i in $PASS_FILES ; do
22
34
echo -en " Parsing $i ..."
23
35
if ./tester " $i " 2> /dev/null 1> /dev/null; then
24
- echo -e " ${GREEN} PASS${NORMAL} "
36
+ echo -e " \t ${GREEN} PASS${NORMAL} "
25
37
(( PASS_COUNT= PASS_COUNT+ 1 ))
26
38
else
27
- echo -e " ${RED} FAIL${NORMAL} "
39
+ echo -e " \t ${RED} FAIL${NORMAL} "
28
40
(( FAIL_COUNT= FAIL_COUNT+ 1 ))
29
41
fi
30
42
done
31
43
32
44
for i in $FAIL_FILES ; do
33
45
echo -en " Parsing $i ..."
34
- if ./tester " $i " 2> /dev/null 1> /dev/null; then
35
- echo -e " ${RED} FAIL${NORMAL} "
36
- (( FAIL_COUNT= FAIL_COUNT+ 1 ))
37
- else
38
- echo -e " ${GREEN} PASS${NORMAL} "
46
+ if test_fail " $i " 2> /dev/null 1> /dev/null; then
47
+ echo -e " \t${GREEN} PASS${NORMAL} "
39
48
(( PASS_COUNT= PASS_COUNT+ 1 ))
49
+ else
50
+ echo -e " \t${RED} FAIL${NORMAL} "
51
+ (( FAIL_COUNT= FAIL_COUNT+ 1 ))
40
52
fi
41
53
done
42
54
@@ -110,7 +122,7 @@ find . -name "*.lst" | while read -r i; do
110
122
done
111
123
echo -e " ${GREEN} DONE${NORMAL} "
112
124
for i in coverage/* .lst; do
113
- tail " $i " -n1
125
+ tail -n1 " $i "
114
126
done
115
127
116
128
rm -f tester.o
0 commit comments