[phobos] Silent failure of std.container unittests

Andrei Alexandrescu andrei at erdani.com
Tue Jul 13 08:24:47 PDT 2010


There are other problems with the current approach, which make it a net 
pessimization:

1. assert() has different semantics at top level (straight inside the 
unittest) vs. everywhere else (e.g. in functions called by the 
unittest). That sucks.

2. assert() does not abort the current unittest. It continues soldering 
on, even though code insite a given unittest commonly assumes that 
continued execution implies success of the previous asserts.

I protested when Walter introduced this disastrous semantics. He said, 
"let's let it be for a while and see how it fares." Now "a while" has 
passed. The feature fared badly. It is worse than before.

By this I kindly ask that either things are improved by fixing both 1 
and 2 above, or the old semantics are enacted.

Walter, I understand you don't routinely test Phobos. Please also 
understand that I test Phobos all the time. You are making my and 
others' life difficult for no good reason.


Andrei

On 07/13/2010 10:13 AM, Steve Schveighoffer wrote:
> isn't this just a bug?  I don't think the original unit test mode (where any
> assert ends the whole program, with no stack trace) is a step forward.
>
> Can't we just fix the bugs?
>
> -Steve
>
>
>
>
> ----- Original Message ----
>> From: Andrei Alexandrescu<andrei at erdani.com>
>> To: Discuss the phobos library for D<phobos at puremagic.com>
>> Sent: Tue, July 13, 2010 10:57:24 AM
>> Subject: Re: [phobos] Silent failure of std.container unittests
>>
>> Walter, Sean - I'm asking again, please bring unittests back where they
>> were. The recent change to assert() semantics has cause a net
>> pessimization of everyone's  efficiency.
>>
>> Thanks,
>>
>> Andrei
>>
>> On 07/13/2010 07:09 AM, Lars  Tandle Kyllingstad wrote:
>>> I'm using Linux too, and DMD 2.047.  I've  investigated this some more.
>>> Compilation of the std.container unittests  succeeds, but the executable
>>>   generated/posix/debug/unittest/std/container terminates with exit status
>>>   1.  Its main() function never runs.
>>>
>>>   -Lars
>>>
>>>
>>> On Mon, 2010-07-12 at 09:18 -0500, Andrei  Alexandrescu wrote:
>>>> Can't reproduce on  Linux.
>>>>
>>>> Andrei
>>>>
>>>> On 07/12/2010  08:55 AM, Lars Tandle Kyllingstad wrote:
>>>>> When running 'make  unittest' on the latest revision of Phobos, it just
>>>>> fails  on/after std.container, without any sensible error  message:
>>>>>
>>>>> Testing  generated/posix/debug/unittest/std/container
>>>>> make[1]: ***  [generated/posix/debug/unittest/std/container] Error 1
>>>>> make: ***  [unittest] Error 2
>>>>>
>>>>> Anyone else seeing  this?
>>>>>
>>>>> -Lars
>>>>>
>>>>>   _______________________________________________
>>>>> phobos mailing  list
>>>>> phobos at puremagic.com
>>>>>   http://lists.puremagic.com/mailman/listinfo/phobos
>>>
>>>
>>>   _______________________________________________
>>> phobos mailing  list
>>> phobos at puremagic.com
>>> http://lists.puremagic.com/mailman/listinfo/phobos
>> _______________________________________________
>> phobos  mailing list
>> phobos at puremagic.com
>> http://lists.puremagic.com/mailman/listinfo/phobos
>>
>
>
>
> _______________________________________________
> phobos mailing list
> phobos at puremagic.com
> http://lists.puremagic.com/mailman/listinfo/phobos


More information about the phobos mailing list