[m-rev.] for review: Disable tabling progs in parallel grades in tests/debugger.
Peter Wang
novalazy at gmail.com
Fri Jan 21 17:55:16 AEDT 2022
On Fri, 21 Jan 2022 17:17:10 +1100 "Zoltan Somogyi" <zoltan.somogyi at runbox.com> wrote:
>
> 2022-01-21 17:10 GMT+11:00 "Peter Wang" <novalazy at gmail.com>:
> > tests/debugger/Mmakefile:
> > As above. In particular, the loopcheck test would run indefinitely
> > until killed, generating copious amount of output in the process.
>
> That's fine, though I think we should decide whether we want
> to effect such decisions by overwriting the values of some
> make variables, like this:
>
> > +ifneq "$(findstring par,$(GRADE))" ""
> > + TABLING_PROGS :=
> > +endif
>
> or whether we want to do a case analysis over the set of grades,
> and select which sets of test cases get included in PROGS,
> as in declarative_debugger/Mmakefile. Doing the same thing
> in different ways in different test directies seems inelegant.
The whole test infrastructure has always been horrible to work with.
If we were to start over, I think my suggestions would be:
1. To create a test case, just add the .m file to the directory.
Don't require it to be listed in a Mmakefile or whatever.
We can establish a convention for .m files that aren't
the top-level module of a test case.
2. Each test case FOO can be controlled by creating other files named
FOO.something. To disable 'loopcheck' in .par grades, there could be
a file 'loopcheck.disable' that contains something like:
.par
which tells the test infrastructure to skip it in .par grades.
Other things you might want to control are: how to invoke the test
case, how to normalise the output, how to determine a passing test,
etc.
3. Make it easier to run individual test cases.
That's off the top of my head.
Peter
More information about the reviews
mailing list