+ struct tvec_test test;
+ int argpos;
+ int i;
+
+ tvec_parseargs(argc, argv, &tvstate, &argpos, &tvec_adhocconfig);
+ if (argpos < argc) die(2, "no input files expected");
+ tvec_adhoc(&tvstate, &test);
+
+ TESTGROUP("before-after") {
+ MC_BEFORE(before0, STEP(0)) STEP(1);
+ MC_AFTER(after0, STEP(3)) STEP(2);
+ STEP(4);
+ }
+
+ TESTGROUP("wrap") {
+ MC_WRAP(wrap0, STEP(0), STEP(2), MISSTEP)
+ STEP(1);
+ MC_WRAP(wrap1, STEP(3), MISSTEP, STEP(5))
+ { STEP(4); break; }
+ STEP(6);
+ }
+
+ TESTGROUP("loop") {
+ for (;;) {
+ MC_AFTER(after1, STEP(1); break) STEP(0);
+ MISSTEP; break;
+ }
+ STEP(2);
+ }
+
+#define FORELSE(head) MC_LOOPELSE(forelse, for (head))
+
+ TESTGROUP("for-else") {
+ FORELSE (i = 0; i < 10; i++) {
+ STEP(i);
+ if (i == 7) break;
+ } else
+ MISSTEP;
+ STEP(8);
+ }
+
+ TESTGROUP("for-else-break") {
+ FORELSE (i = 0; i < 10; i++) {
+ STEP(i);
+ if (i == 12) break;
+ } else
+ STEP(10);
+ STEP(11);