From: Gennadiy Rozental (gennadiy.rozental_at_[hidden])
Date: 2006-05-13 02:48:00
"David Abrahams" <dave_at_[hidden]> wrote in message
> "Gennadiy Rozental" <gennadiy.rozental_at_[hidden]> writes:
>> "David Abrahams" <dave_at_[hidden]> wrote in message
>>> "Gennadiy Rozental" <gennadiy.rozental_at_[hidden]> writes:
>>>>>> 2. Opting to ignore system signals will cause halt for regression
>>>>>> some cases (unless we change the setup explicitly)
>>>>> No, it's the other way round. The UB causes halts in regression
>>>>> I experienced dozens of these incidences. As I said, I wasted days of
>>>>> CPU and human time on this problem.
>>>>> How does not mapping a signal to exceptions and letting the process
>>>>> instead cause halt for regression testing?
>>>> Because some compiler would show dialog window for example.
>>>> there is no silver bullet here. One will have to deal with stalling
>>>> regression tests one way or another. Which case has less incidents is
>>>> open question.
>>> In the absence of other data, it seems to me that Martin's report
>>> should be given more weight.
>> What do you mean by "absence of other data"? I know for sure that several
>> compilers will produce dialog window.
> Hmm, maybe I misunderstood the argument. Isn't there a way of encoding
> this information in the library and allowing tests to specify a
> default mode, e.g.:
> "By default, I am being run as part of an automated test suite and
> should not stall the process"
> "By default I am being run by hand..."
I don't know about the default (how do you plan library would figure out
whether it's run from regression run or by hand?), but users could specify
how they want library to behave using either CLA or environment variable (or
in config file starting next release)
> maybe this mode specification thing is even unnecessary, I don't know.
> But if you know which platforms and compilers will benefit from
> mapping signals, it seems to me you should only do it there.
IMO all users on all platforms could benefit from signal catching (both in
regression run and run by hand). At the same time the same users need to
understand the possibility (small IMO) of hung test in case of severe memory
corruption. Now you propose to have different default behavior on different
platforms. I would strongly oppose such inconsistency (And don't forget
there other reasons mentioned in this thread to keep current default).
Regression tools maintainers (and/or library developers) need to decide what
they want to do on case by case (tool by tool or even better test/tool by
test/tool) level. And unfortunately in some cases whatever you choose you
still be exposed to the possibility of hung run (from either a deadlock or
Boost list run by bdawes at acm.org, gregod at cs.rpi.edu, cpdaniel at pacbell.net, john at johnmaddock.co.uk