@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.947) exit(1) }' \
+ if (ran < (ran + skip) *0.95) exit(1) }' \
coverage/oceani.mdc.gcov
@rm -f .tmp*
foo.c = 43
print c.foo
print bar.c
+ print bar.b + 42
+
+
+ // trigger 'labels not permitted' error message
+ while 1 if True else False:
+ print
+ case 2: print "two"
###### output: type_err3
.tmp.code:8:12: error: expected number but variable 'c' is string
.tmp.code:32:16: error: expected none found number
.tmp.code:33:14: error: field reference attempted on string, not a struct
.tmp.code:34:14: error: cannot find requested field in foo
+ .tmp.code:35:17: error: have string but need number
+ .tmp.code:39:29: error: expected number (labels not permitted) found Boolean
oceani: type error in program - not running.
###### test: type_err4
static int type_compat(struct type *require, struct type *have, int rules)
{
if ((rules & Rboolok) && have == Tbool)
- return 1;
+ return 1; // NOTEST
if ((rules & Rnolabel) && have == Tlabel)
- return 0;
+ return 0; // NOTEST
if (!require || !have)
return 1;
t->size = size;
t->align = size > sizeof(void*) ? sizeof(void*) : size;
if (t->size & (t->align - 1))
- t->size = (t->size | (t->align - 1)) + 1;
+ t->size = (t->size | (t->align - 1)) + 1; // NOTEST
return t;
}