[PD] regression testing WAS Re: [psql] object hand-holding
Martin Peach
martin.peach at sympatico.ca
Mon Dec 24 18:50:26 CET 2007
Mathieu Bouchard wrote:
> On Sun, 23 Dec 2007, Hans-Christoph Steiner wrote:
>
>>> e.g. "fail_blabla" will only success if it returns the state "FAIL"
>>> immediately or after a "WAIT".
>> In a binary system, anything that doesn't success would be a failure.
>> I don't quite get the WAIT state. Do you have an example of where to
>> use that?
>
> In most tristate electronics, the third state is WAIT, but in Pd, you
> normally do that by not sending a message: if as binary you'd send a 0
> or 1 while running a certain method, and want to introduce a WAIT
> state, you'd make it not output anything at first, introduce proper
> [delay], and only later send a 0 or 1 when it's ready. It's as simple
> as that. If the answer is not going to come, an explicit "wait"
> message isn't going to disambiguate nor solve that, so it might be a
> good idea to put some timeout protection *outside* of the tests
> themselves.
>
In digital electronics the third state is high-impedance, that is, it is
not driven high or low. However, a device reading a Hi-Z output will
itself always output either 0 or 1 and has no way of telling that it is
connected to a Hi-Z output, so if you want Hi-Z to mean WAIT, you'll
need another line that is driven to 1 or 0 to indicate that the result
isn't in yet.
It's an early result in computational theory that in general it is not
possible to know if a process will terminate or not.
Probably using a watchdog timer is the best way out: if the result isn't
in after a reasonable delay, assume it's not going to happen, something
like:
[test_suite(
| |
[b] |
| |
[delay] [object_under_test]
| | |
[fail( [pass( [stop(------->to [delay]
Martin
More information about the Pd-list
mailing list