@mv *.gcov coverage; [ -f .gcov ] && mv .gcov coverage || true
@awk '/NOTEST/ { next } /^ *[1-9]/ {ran+=1} /^ *###/ {skip+=1} \
END {printf "coverage: %6.2f%%\n", ran * 100 / (ran + skip); \
- if (ran < (ran + skip) *0.92) exit(1) }' \
+ if (ran < (ran + skip) *0.94) exit(1) }' \
coverage/scanner.mdc.gcov
@rm -f .tmp*
done
###### test list
- scanner_section_tests += section1
+ scanner_section_tests += section1 section_string section_comment
###### test: section1
4:0 newline()
4:0 eof()
+###### test: section_string
+ a = '''
+ A sting mustn't cross
+ ## string B
+ skip
+
+###### string B
+ to a new node
+ '''
+
+###### output: section_string
+ Tokenizing: test: section_string
+ 1:8 ident(a)
+ 1:10 mark(=)
+ 1:12 ERROR('''\x0a\x09 A sting mus..)
+ 7:8 in()
+ 7:8 ident(to)
+ 7:11 ident(a)
+ 7:13 ident(new)
+ 7:17 ident(node)
+ 8:8 newline()
+ 8:8 ERROR(''')
+ 4:8 newline()
+ 4:8 out()
+ 4:8 newline()
+ 4:8 ident(skip)
+ 5:0 newline()
+ 5:0 eof()
+
+###### test: section_comment
+ /* Mult-line comment must stay within
+ ## comment B
+ */
+
+###### comment B
+ a single node, they cannot cross nodes.
+
+###### output: section_comment
+ Tokenizing: test: section_comment
+ 1:8 ERROR(/* Mult-line comme..)
+ 6:8 ident(a)
+ 6:10 ident(single)
+ 6:17 ident(node)
+ 6:21 mark(,)
+ 6:23 ident(they)
+ 6:28 ident(cannot)
+ 6:35 ident(cross)
+ 6:41 ident(nodes)
+ 6:46 mark(.)
+ 3:8 newline()
+ 3:8 mark(*/)
+ 4:0 newline()
+ 4:0 eof()
+
## Ad-hoc test
These tests test bugs that were found in practice, and so prevent them recuring.